我有一个大的二维数组,我在那里更新了值,而我的其他聚合物元素没有得到变化的通知。我知道为什么,我认为我的解决方案是强制进行房产变更事件,但我不确定。
对于像这样的模型元素项......
<polymer-element name="my-model" attributes="rows">
...
<script>
...
this.rows[0][0] = newValue;
</script>
我在像这样的视图元素中使用它时发现...
<my-view rows="{{model.rows}}"></my-view>
视图的实现是这样的......
<polymer-element name="my-view" attributes="rows">
<template>
<template repeat="{{row in rows}}">
<template repeat="{{col, i in cols}}">
{{row[i]}}
</template>
</template>
</template>
除非我在模型中重置数组值
,否则我的视图不会更新this.rows = []
我可以以某种方式强制进行属性更改事件。我试过......
this.rows = this.rows
..和...
this.notifyPropertyChanged('rows', this.rows, this.rows)
没有运气。任何想法,将不胜感激。谢谢!
答案 0 :(得分:2)
你的第二个模板出现了错误。由于您使用的是命名范围,因此您的第二个模板需要为{{col, i in row}}
:
<template repeat="{{row in rows}}">
<template repeat="{{col, i in row}}">
这对我有用:http://jsbin.com/sidagomu/1/edit
(点击元素 - &gt;数据更新 - &gt;模板重新渲染)