如何在聚合物中使用变量作为数组索引?因为我知道这是有效的:
{{array.0}}
我试过这个,但没有起作用(正如预期的那样):
{{array.{{index}}}}
代码:
<dom-module id="device-list">
<template>
<template is="dom-repeat" items="[[devices]]">
<p>{{item.name}} is turned {{stateText.{{item.state}}}</p>
</template>
</template>
</dom-module>
<script>
Polymer({
is: "device-list",
ready: function () {
this.devices = [
{
name: "device 1",
state: 0
},
{
name: "device 2",
state: 1
},
{
name: "device 3",
state: 1
}
];
this.stateText = ["OFF","ON"];
}
});
</script>
我期望得到这个输出:
device 1 is turned OFF
device 2 is turned ON
device 3 is turned ON
但得到的却是:
device 1 is turned }}
device 2 is turned }}
device 3 is turned }}
这可能使用聚合物吗?还是我应该使用JS(以及如何使用)?
1)不确定为什么不使用属性,我认为这是预期的方式,而不是在就绪事件中设置属性。
2) 我认为没有getter方法(=一些JavaScript)是不可能做到这一点的。这项工作:
http://jsbin.com/sufoma/edit?html,输出
<dom-module id="device-list">
<template>
<template is="dom-repeat" items="[[devices]]">
<p>{{item.name}} is turned {{_getStateText(stateText,item.state)}}</p>
</template>
</template>
</dom-module>
<script>
Polymer({
is: "device-list",
properties: {
devices: {type:Array,
value: [{
name: "device 1",
state: 0
},
{
name: "device 2",
state: 1
},
{
name: "device 3",
state: 1
}]
},
stateText:{type:Array, value:["OFF","ON"]}
},
_getStateText:function(stateText,state) {
return stateText[state];
}
});
</script>