动态生成绑定变量名称

时间:2017-09-12 13:43:35

标签: polymer

我有一个数据网格,我使用dom-repeat生成列。

<vaadin-grid-filter value=[[filterInput]] />
 <input value={{filterInput::input}} />
</vaadin-grid-filter>

我将用于过滤列的值与输入值中的值绑定到输入元素中。

我的问题是每列都绑定到同一个filterInput变量。

我是否可以使用每个特定列的变量进行绑定?

我可以以某种方式为每列生成绑定变量,例如使用filterInput[0]附带的filterInput[1]变量,indexdom-repeat等?

1 个答案:

答案 0 :(得分:1)

我使用元素。

  

HTML模板

<template is="dom-repeat" items="{{technology}}">
    <input type="text" value="{{item.label::input}}">[[item.label]]<br/>
</template>
  

聚合物元素

technology : {
    type: Array,
    value: [
        {id:"php", label:"PHP", selected:false},
        {id:"js", label:"Javascript", selected:false},
        {id:"html", label:"HTML", selected:false},
        {id:"css", label:"CSS", selected:false},
    ]
}
  

Full Polymer元素

<dom-module id="input-array-element">
    <template>
        <h3>Inputs Array</h3>
        <template is="dom-repeat" items="{{technology}}">
            <input type="text" value="{{item.label::input}}">[[item.label]]<br/>
        </template><br>
    </template>
    <script>
    class InputArrayElement extends Polymer.Element {
        static get is() { return 'input-array-element'; }

        static get properties() {
            return {
                technology : {
                    type: Array,
                    value: [
                        {id:"php", label:"PHP", selected:false},
                        {id:"js", label:"Javascript", selected:false},
                        {id:"html", label:"HTML", selected:false},
                        {id:"css", label:"CSS", selected:false},
                    ],
                    notify: true
                }
            }
        }

        ready() {
            super.ready();
            this.addEventListener("technology-changed", function(e){
               console.log(e); 
            });
        }

    }

    window.customElements.define(InputArrayElement.is, InputArrayElement);        
    </script>
</dom-module>