我有一个像这样的简单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上复制。
答案 0 :(得分:1)
有趣的问题。所以我尝试使用单个paper-button
绑定到单个item
实例,结果证明它工作正常,这让我觉得它可能与数组中的路径绑定有关。 / p>
然后我向tap
添加了paper-button
处理程序,每次点击它时,在notifyPath
子属性路径上执行selected
值本身 -
this.notifyPath('items.0.selected', this.items[0].selected);
并且it有效。