聚合物将数据绑定到div id

时间:2015-01-13 14:44:59

标签: javascript arrays data-binding polymer

我有一个聚合物元素,我可以在其中声明一个数组并使用它如下。

  ...
  <template repeat="{{chapters as chapter}}">
    <core-submenu id='{{chapter.id}}-core-submenu' label="{{chapter.label}}">
    </core-submenu>
  </template>
  ...
  Polymer('app-element', {
    chapters: [{id: one, label: one}, {id: two, label: two}],
    ...
    somethingChanged : function(){
      this.$[this.chapter.id + '-core-submenu']
    }
    ...
}

如果我填写上面的章节对象,它会按预期工作。

我想从外面看这章。然后我做以下事情:

  var app = document.querySelector('#app');
  window.addEventListener('polymer-ready', function() {
    app.chapters = [{id: one, label: one}, {id: two, label: two}];
  });

如果我这样做,那么。$ [this.chapter.id +&#39; -core-submenu&#39;]现在为空。我想这是因为这个。$在聚合物就绪事件被触发之前被填充。

有意义吗?哪个是现在访问此元素的最佳做法?我希望仍然可以通过它访问它。$。

最佳

尼古拉斯

1 个答案:

答案 0 :(得分:0)

我建议将此属性公开为聚合物属性,然后使用setAttribute

从外部访问该属性
window.addEventListener('polymer-ready', function() {
    var app = document.querySelector('#app');
    app.setAttribute('chapters',[{id: one, label: one}, {id: two, label: two}]);
});