В полимерном пользовательском элементе можно ли наблюдать изменения свойств элементов коллекции?


У меня есть пользовательский полимерный элемент, который содержит массив элементов, представляя их в виде таблицы. Я обнаружил, что при изменении свойства элемента в массиве отображение не обновляется.

Есть демонстрация проблемы ввторой из этих таблиц примеров .

Я подозреваю, что это может быть связано с использованием цикла repeat для отображения каждого свойства вместо указания фактического имени свойства в шаблоне, поэтому путь к свойству разве к нему не прикреплен наблюдатель?

Я работаю над этим, строчируя и повторно анализируя элемент после изменения одного из его атрибутов, а затем соединяя его обратно в массив, но это явно неэффективно.

Существует ли способ гарантировать, что Polymer обновляет отображение при изменении свойства элемента в коллекции?

1 2

1 ответ:

Я полагаю, что вы правы, что только идентификаторы верхнего уровня наблюдаются для изменений, а не их свойства. Например, если у вас есть выражение:

{{ { article: article, field: field }} 

Обнаруживаются только изменения в article и field - изменений в их свойствах, таких как article.id, нет.

В этом случае мне удалось заставить ваш пример работать, заменив выражение & filter на:

{{ article[field] }}

Доступ к массиву не задокументирован как поддерживаемый в выражениях, но это, по-видимому, надзор. Я открыл билет, чтобы обновить документы:

Https://github.com/Polymer/polymer/issues/486