在 Polymer 1.0 中 dom-repeat 中的双向绑定问题
Issue with two-way binding inside dom-repeat in Polymer 1.0
我有一个简单的template
像这样
<template is="dom-repeat" items="[[items]]">
<paper-button active="{{item.selected}}" toggles raised>
<span>[[item.selected]]</span>
</paper-button>
</template>
如果我通过点击激活列表中的第一个 paper-button
然后调用
this.set('items.0.selected', !this.items[0].selected);
它被停用了。
但是如果我再次尝试上述确切步骤,按钮不会停用,这会使按钮状态和 selected
值不同步。
为什么要这样做?该问题可以在 here.
上重现
有趣的问题。所以我尝试使用单个 paper-button
绑定到单个 item
实例,结果证明它工作正常,这让我想到它可能与数组内的路径绑定有关。
然后我向 paper-button
添加了一个 tap
处理程序,每次点击它时,在 selected
子属性路径上使用其自身的值执行 notifyPath
-
this.notifyPath('items.0.selected', this.items[0].selected);
并且 it 有效。
我有一个简单的template
像这样
<template is="dom-repeat" items="[[items]]">
<paper-button active="{{item.selected}}" toggles raised>
<span>[[item.selected]]</span>
</paper-button>
</template>
如果我通过点击激活列表中的第一个 paper-button
然后调用
this.set('items.0.selected', !this.items[0].selected);
它被停用了。
但是如果我再次尝试上述确切步骤,按钮不会停用,这会使按钮状态和 selected
值不同步。
为什么要这样做?该问题可以在 here.
上重现有趣的问题。所以我尝试使用单个 paper-button
绑定到单个 item
实例,结果证明它工作正常,这让我想到它可能与数组内的路径绑定有关。
然后我向 paper-button
添加了一个 tap
处理程序,每次点击它时,在 selected
子属性路径上使用其自身的值执行 notifyPath
-
this.notifyPath('items.0.selected', this.items[0].selected);
并且 it 有效。