更改数组中对象的路径通知?

时间:2015-08-21 01:35:04

标签: polymer-1.0

我们有一个大型模型对象,在聚合物之外拥有和管理。我们希望通过公开计算部分的代理元素将此模型公开给聚合物元素。

例如,该模型可能具有:

{
    blocks: {
       ...
       properties: [
         { ... },  // prop0
         { ... },  // prop1
       ]
    },
}

我们使用递归对象观察器和数组观察器来监视模型的更改并适当地通知聚合物(使用.notifyPath(path, ...)进行对象更改,使用._notifySplice(...)进行数组更改)。但是,似乎没有一种好方法可以通知数组中对象的更改,例如上面示例中更改了prop0

有吗?路径应该是什么?

1 个答案:

答案 0 :(得分:0)

这是一个使用绑定来显示嵌套在对象和数组中的更新的Polymer属性的示例:

代码:

<div>
    <h1>[[blocks.properties[0]]]</h1>
    <p>this updated property should read: Apple</p>
</div>

脚本:

Polymer({
  is: "my-page",

  properties: {
    blocks: {
      type: Object,
      value: { properties : ["acorn","banana","carrot"] },
      notify: true
    },
  },

  attached: function() {
    console.log("update");
    this.set('blocks.properties[0]', "Apple");
  },

如果您需要执行数组函数,还应使用this.push(path, value)this.splice(path, value)来通知更改。