@Igorello74

Как хранить сложные объекты в атрибутах элементов правильно?

Пользуюсь библиотекой choices.js (ванильный аналог select2), чтобы принимать что-то типа списка тегов.
Спойлер
На самом деле там не теги, а по факту select-multiple, просто реализую я это как выбор произвольных тегов с последующей проверкой item`ов через ajax и удалением невалидных. Всё это с Django на бэке, поэтому для reusability инициализирую либу в одном файле, а обработку item`ов в другом.

Чтобы всё было по правильному, инициализирую библиотеку в одном файле (widget.js), а дальнейшую логику (специфичную именно для этого use case) реализую в другом (reader-page.js).
Так вот, мне нужно обращаться к объектам (насколько я понимаю, экземпляры класса Choices) либы из второго файла, и так как каждый объект Choices относится к своему элементу DOM`а, решил хранить эти объекты в атрибутах элементов. Примерно так:
elem = $(".choicesjs")[0];
elem.choices = new Choices(elem);


Что-то мне подсказывает, что так не совсем корректно, ведь кто знает, может в будущей ревизии HTML определят атрибут choices для чего-то... Посмотрел на data-атрибуты, но они хранят лишь строки, а мой Choices сериализовать не удаётся.

Вопрос: как хранить сложные объекты в атрибутах элементов правильно?
Спасибо.
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
zkrvndm
@zkrvndm
Архитектор решений
Что мешает закодировать данные в строку и уже потом хранить?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы