【发布时间】:2016-01-02 02:09:56
【问题描述】:
Polymer 中的数组存在一些问题。我有一个类别数组,其中包含一组项目。这些项目包含几个我想轻松改变的属性。对于此示例,我想切换 item.enabled 属性。这是模板布局:
<template is="dom-repeat" items="{{categories}}" as="category">
<span>{{category.name}}</span>
<template is="dom-repeat" items="{{category.items}}" as="item">
<span>{{item.name}}</span>
<span>{{item.enabled}}</span>
<paper-icon-button icon="error" on-tap="toggleEnabled"></paper-icon-button>
</template>
</template>
我希望toggleEnabled-调用切换属于该类别的特定项目的enabled-属性。
AFAIK,要更新 item.enabled 属性以便更新模板,我需要调用 Polymer 的 set() 方法。需要使用该项目属性的路径(作为字符串)和值来调用此方法:
this.set('categories.x.items.y.enabled', !item.enabled)
在此调用中,x 是类别索引,y 是项目索引。这个问题是我不确定如何(有效地)从toggleEnabled 调用中获取这两个参数。我知道如何获取项目本身:
toggleEnabled: function(e) {
var item = e.model.item;
}
但除了过度过滤之外,我不确定如何检索索引以更新项目的属性以更新模板。
我忽略了什么?最有效的方法是什么?
【问题讨论】:
标签: arrays polymer polymer-1.0