Javascript 如何强制propertyChange事件
我有一个大的二维数组,我在其中更新了相应的值,而我的其他聚合物元素不会收到更改通知。我知道原因,我认为我的解决方案是强制进行财产变更,但我不确定 对于这样的模型元素项Javascript 如何强制propertyChange事件,javascript,polymer,Javascript,Polymer,我有一个大的二维数组,我在其中更新了相应的值,而我的其他聚合物元素不会收到更改通知。我知道原因,我认为我的解决方案是强制进行财产变更,但我不确定 对于这样的模型元素项 <polymer-element name="my-model" attributes="rows"> ... <script> ... this.rows[0][0] = newValue; </script> <my-view rows="{{model.rows}}">
<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.notifyPropertyChanged('rows', this.rows, this.rows)
没有运气。任何想法都将不胜感激。谢谢 第二个模板中有一个错误。因为您使用的是命名作用域,所以第二个模板需要是
{{col,i in row}}
:
<template repeat="{{row in rows}}">
<template repeat="{{col, i in row}}">
这对我很有用:
(单击元素->数据更新->模板重新渲染)有效。谢谢注意:我在“cols”上迭代,它的长度与“row”相同,所以从编程的角度来说,当我最终调用“row[I]”时,它应该无关紧要。但因为我没有使用“行”,聚合物并没有创建一个自动可观察的绑定。既然我看到了这个问题,我希望不要再犯这个错误。我认为这可能是一个错误。如果您有:
this.cols=[“一”、“二”、“三”]
然后cols
在内部模板的作用域中,并且{{{col,i in cols}}
应该可以工作。我不明白为什么行[I]
在一种情况下更新,而在另一种情况下不更新。事实上,即使使用{{col,i In[1,2,3]}
,绑定也不会更新。有点可疑。这就是说,使用{{col in row}}
和{{col}}
非常简单,应该可以可靠地工作。
<template repeat="{{row in rows}}">
<template repeat="{{col, i in row}}">