聚合物数据绑定数组索引



如何在聚合物中使用变量作为数组索引?因为我知道这是有效的:

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

最新更新