将父Polymer元素数据公开给子元素

时间:2014-11-10 11:14:59

标签: javascript polymer

我有以下结构:

<main-container data-endpoint="/api/allrecent">
  <section>
  <list-container data-source="{{feed.recent}}" data-type="member" data-title="Recent Members"></list-container>
  </section>
</main-container>

main-container.js中的哪个位置我使用Promise获取数据:

var self = this;
connector.get(this.dataset.endpoint)
.then(function(data) {
  self.feed = JSON.parse(data);
});

现在,我想将self.feed公开为list-container作为数据源。这意味着当Promise得到解决时,它将填充列表容器的内容。

我在访问list-container内的Feed时遇到了麻烦。我已经阅读了一些SO答案和聚合物文档,但还没有找到正确的方法来实现这一目标。

解决方案可能很简单(比如要绑定的一个属性),但还没找到它。

1 个答案:

答案 0 :(得分:1)

如果您想使用绑定,则需要Polymer元素或<auto-binding>标记以及包含<main-container>元素的模型。

<polymer-element name="some-element" attributes="feed">
  <template>
    <main-container data-endpoint="/api/allrecent" feed="{{feed}}">
      <section>
      <list-container data-source="{{feed.recent}}" data-type="member" data-title="Recent Members"></list-container>
      </section>
    </main-container>
  </template>
</polymer-element>

现在,您可以将<main-container><list-container>中的属性绑定到<some-element>中的相同属性。