Динамическое обновление шаблонов dom-repeat путем изменения базового массива
Существует ли метод polymer dom api или другие способы автоматического обновления повторяющегося шаблона с дополнительными элементами, если базовый массив будет обновлен?
У меня есть динамический массив, который повторно обновляется через ajax-вызовы. Этот массив продолжает изменять свою длину (элементы получают добавочно или удаляются элементы на основе ответа ajax). Массив отражается в документе через <template is="dom-repeat">
. Есть ли способ автоматически обновлять dom, когда базовый массив обновляется?
В настоящее время единственными способами, которые я вижу, являются
- Идентификация инкрементных обновлений и добавление или удаление узлов вручную.
- Удалить весь контейнер шаблонов повторений и переустановить новый шаблон. Я даже не знаю, как штамповать новый шаблон динамически. Это возможно? Один из способов, который я могу придумать для достижения этого, - это создать другой пользовательский элемент, который повторяет штамповку шаблонов и всякий раз, когда есть обновление массива, удалите текущий элемент, добавьте новый элемент, передав обновленный массив элементу.
Используя 2, я не смогу использовать эффекты перехода из списка, автоматически обновляющиеся в представлении. Я хочу использовать эти эффекты.
Ответы
Ответ 1
Если вы обновите массив с помощью this.push('myarray', {item});
, тогда это вызовет наблюдателей, связывающих Полимер. Дополнительная информация содержится в документации по адресу https://www.polymer-project.org/1.0/docs/devguide/properties#array-mutation