В каком поле html элемента лучше хранить данные?
Имею в виду сложные данные (объекты), не примитивы. Т.е. поле dataset тут не подходит. Данные не должны появляться в аттрибутах.
Сейчас сохраняю в поле data. В Хроме нормально работает. Компилятор TypeScript иногда ругается, что не соответствует интерфейсу HTMLElement, но указание any эту проблему решает. Что на счет других браузеров? Можно так делать? |
Shitbox2, ты бы хоть примеры какие тестовые сделал...
"Сложные" объекты можно и в json формат перевести и хранить в любом текстовом поле... |
В свойствах - http://javascript.ru/tutorial/dom/attributes
<div id="dtest">test</div> <script> dtest.mydata = {test1: 'раз', test2: 'два', test3: 'три', 4: 'четыре'}; console.log(dtest.mydata); </script> |
Цитата:
Цитата:
|
Shitbox2,
data - зарезервирована для "data-*", возможно поэтому и ругается. Специально под это вроде бы не предусмотрено имён. |
Shitbox2,
есть тип данных Map, где и можно хранить в качестве ключей DOM-элементы |
Как вариант, можно использовать символ....
const data = Symbol("data"); myElement[data] = {}; |
Shitbox2, некоторые люди очень любят рыть подземный ход на чердак...
Может ты как раз этим и занимаешься. ;) |
HTMLElement - это обычный объект, по факту. Так что, называйте свойство как хотите, главное - чтобы не было конфликтов. Рекомендовал бы называть свойства с префиксом "нижнее подчёркивание".
myElem._data = '...'; |
Цитата:
Цитата:
Пока немного проще "model = element.data" чем "model = models[element]" Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 10:13. |