聚合物1. *
我正在尝试使用数组优化计算绑定的行为。我有<div hidden$="[[getState(uploadState.*)]]">FOO</div>
但它经常被解雇。
我将其改进为uploadState.value
:
<template is="dom-repeat"
initial-count="1"
index-as="index"
items="{{uploadState}}">
<div hidden$="[[getState(uploadState.value)]]">FOO</div>
使用:
uploadState: {
type: Array,
value: function() {
var arr = Array.apply(null, Array(5));
var newArray = arr.map(()=> {
return {
value: false,
main: false,
edited: false,
loading: false
};
});
return newArray;
},
notify: true
},
attached: function() {
setTimeout(()=> this.set(`uploadState.0.value`, true), 1000)
}
但它根本没有发射。当value
属性发生变化时,如何在计算出的绑定中触发它?
另外,如何在更改时使用this.get()
获取值?我在计算的绑定var uploaded = this.get(['uploadState.value', 0])
中尝试了getState
,但它只是显示未定义的(当它用于触发。*时)
答案 0 :(得分:2)
您使用绑定uploadState.value
的问题是它不存在。您正在制作一个uploadState
数组,其成员的属性value
看起来更像uploadState.*.value
,但您并不想真正改变所有值的变化,只是有问题的一个,这样你就可以利用item
的{{1}}绑定,这样你的代码就会这样:
dom-repeat
我可能会建议您更改命名约定并使用<template is="dom-repeat"
initial-count="1"
index-as="index"
items="{{uploadState}}">
<div hidden$="[[item.value]]">FOO</div>
</template>
作为数组和所有内容,以便您可以执行以下操作:
uploadStates