聚合物:如何将动态值加载到纸张菜单中的纸张项目中?

时间:2016-11-14 15:05:15

标签: javascript html polymer

我想从javascript代码中获取我从firebase获得的对象列表,以及纸质菜单中纸质项目的“items”属性。这是我的代码:

HTML:

<paper-menu class="menuList" id="disciList" attrForSelected="value" selectedItems="{{selectionDisci}}" multi>
  <template is="dom-repeat" items="{{disciplines}}">
     <paper-item value="{{item.name}}">{{item.name}}</paper-item>
  </template>
</paper-menu>

使用Javascript:

var disciplines = [];
      var i = 0;
      
      var disciRef = db.ref(exercises.node + exercises.discinames);
      disciRef.once("value").then(function(snapshot) {
        snapshot.forEach(function(childSnapshot) {
          var key = childSnapshot.key;
          disciplines["name" + i] = childSnapshot.key;
          i++;
        });
      });

我正确地获得了列表,但是我无法弄清楚如何在纸质项目中加载{{items.name}}加上“i”(0-1-2-3 ...)的值。如果有另一种加载动态列表的方法,我愿意学习。

谢谢。

1 个答案:

答案 0 :(得分:1)

使用属性绑定到数组。然后将列表设置为该数组属性。

Polymer({
  is: 'custom-element',
  properties: {
    disciplines:
      type: Array,
      value: []
  }

  loadItem: function(){
    //finish loading items to var disciplines then
    this.set('disciplines', disciplines);    
  }
})

您可以在index内使用dom-repeat来打印&#39; i&#39;

的值
<paper-item value="{{item.name}}">{{index}} {{item.name}}</paper-item>

还阅读dom-repeat here的文档。