Динамическое обновление шаблонов 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