Javascript Polymer 1.0-更改属性值未在Dom Repeat中更新
我有一个Javascript Polymer 1.0-更改属性值未在Dom Repeat中更新,javascript,polymer,polymer-1.0,web-component,Javascript,Polymer,Polymer 1.0,Web Component,我有一个dom repeat元素,当呈现该元素时,它只填写了name属性,并且price将由ajax响应填充: <template is="dom-repeat" id="myId" items="{{arr}}"> <div>[[item.name]]</div> <div>[[item.price]]</div> </template> 收到响应后,但不起作用 编辑: 我可以做这个.set(
dom repeat
元素,当呈现该元素时,它只填写了name
属性,并且price
将由ajax响应填充:
<template is="dom-repeat" id="myId" items="{{arr}}">
<div>[[item.name]]</div>
<div>[[item.price]]</div>
</template>
收到响应后,但不起作用
编辑:
我可以做
这个.set('arr.x.price',value)
其中x
是数组中我的对象的索引,但是我的上下文在一个函数中,除非我计算它,否则它不知道索引,这并不难,但肯定有更好的方法?数组更新方法
this.set
更新数组值。参考:this.notifyPath('arr',this.arr)
。参考:为了渲染更新后的数组,可以对其进行更新,然后通过克隆设置值。例如:
this.arr[0].price = 99;
let arr_clone = this.arr.slice(0);
this.set('arr', arr_clone);
如果使用此.push更新数组('myarray',{item});然后,这将触发聚合物的结合观察者。您必须使用this.set/this更新数组。push@Alon属性I update在不知道其在数组中的索引的函数中给定的对象。你会怎么写?我是否必须搜索它的索引才能执行
this.set('array.x.price',value)
?我认为this.fire('arr-changed')
应该可以工作,但更好的方法可能是推迟渲染元素,直到所有数据可用。感谢对各种方法的总结。我仍然在寻找一种方法来更新聚合物的特定属性,而不必穿过整个链。但不确定是否存在任何方法。
<template is="dom-repeat" id="myId" items="{{arr}}" observe="price">
this.$.myId.render()
this.arr[0].price = 99;
let arr_clone = this.arr.slice(0);
this.set('arr', arr_clone);