如何强制propertyChange事件

时间:2014-05-01 18:13:27

标签: javascript polymer

我有一个大的二维数组,我在那里更新了值,而我的其他聚合物元素没有得到变化的通知。我知道为什么,我认为我的解决方案是强制进行房产变更事件,但我不确定。

对于像这样的模型元素项......

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

没有运气。任何想法,将不胜感激。谢谢!

1 个答案:

答案 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;模板重新渲染)