Полимер 1, у меня в железном списке:
<iron-list
id="ironList"
scroll-target="[[ironListScrollTarget]]"
items="[[itemCollectionCopy]]">
...
<div class="text center-justified info-icon">
<iron-icon
hidden="[[!_isDirtyData(item.*, itemCollectionCopy)]]"
role="img"
aria-label="Check-out information has been modified"
title="Check-out information has been modified"
icon="icons:info-outline"></iron-icon>
<iron-icon
hidden="[[_isDirtyData(item.*, itemCollectionCopy)]]"
role="img"
class="pristine-data"
aria-label="Check-out information has been modified"
title="Check-out information has been modified"
icon="icons:info-outline"></iron-icon>
</div>
_isDirtyData: function(item) {
console.log(item);
return item.base.preferences;
},
setCustomPreference: function(e) {
const id = e.detail.data.clientId;
const preferences = e.detail.data.preferences;
const foo = this.itemCollectionCopy.map((item) => {
if (item.client_id === Number(id)) {
item.preferences = preferences;
}
return item;
});
this.itemCollectionCopy = [];
this.itemCollectionCopy = [...foo];
},
При добавлении объекта настроек в item.preferences
я не смог получить вычисленную привязку hidden="[[_isDirtyData(item.*)]]"
для обнаруженияперемена.Вместо этого мне пришлось добавить весь массив itemCollectionCopy
в hidden="[[_isDirtyData(item.*, itemCollectionCopy)]]"
, что кажется чрезмерным.
Почему вычисленная привязка не обнаружит изменение всего за hidden="[[_isDirtyData(item.*)]]"
?