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)
    。参考:
  • 如果使用方法1。然后可以使用observe属性来侦听对子字段的更改。参考:


    为了渲染更新后的数组,可以对其进行更新,然后通过克隆设置值。例如:

    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);