在Polymer自定义元素中,是否可以观察集合中项目的属性以进行更改?

时间:2014-04-21 12:22:20

标签: javascript polymer

我有一个自定义的Polymer元素,它包含一个项目数组,将它们呈现为一个表格。我发现当数组中某个项的属性发生更改时,显示不会更新。

the second of these example tables中有一个问题的演示。

我怀疑它可能连接到使用repeat循环来渲染每个属性而不是在模板中指定实际属性名称,因此该属性的路径不会附加观察者?

我正在通过在其中一个属性更改之后对项进行字符串化和重新解析来解决这个问题,然后将其拼接回数组中,但这显然效率低下。

有没有办法确保在更改集合中项目的属性时Polymer更新显示?

1 个答案:

答案 0 :(得分:2)

我相信你是正确的,只有顶级标识符才会被观察到变化,而不是它们的属性。例如,如果您有表达式:

{{ { article: article, field: field }} 

仅检测到对articlefield的更改 - 对其属性的更改,例如article.id不会。

在这种情况下,我能够通过替换表达式来实现您的示例。过滤:

{{ article[field] }}

表达式不支持数组访问,但这显然是一种疏忽。我已经开了一张票来更新文档:

https://github.com/Polymer/polymer/issues/486