使子组件在Polymer 1.0.0中调用其父API

Cyr*_*l F 3 javascript polymer

我有两个使用Polymer 1.0.0定义的Web组件,我的问题是访问父公共API

<dom-module id="x-gallery">
  <template is="dom-repeat" items="{{photos}}">
    <x-photo photo="{{item}}"></x-photo>
  </template>
</dom-module>

<script>
  Polymer({
    is: 'x-gallery',

    ...

    getAll: function() {
      return this.photos;
    }
  });
</script>

<dom-module id="x-photo">
  <template>
    <img src="{{photo.src}}">
  </template>
</dom-module>

<script>
  Polymer({
    is: 'x-photo',
    properties: {
      photo: Object
    },

    ready: function() {
      // HERE ---
      // How could I access the x-gallery.getAll public method?
      // ...
    }
  });
</script>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我想知道如何getAll从孩子们那里轻松访问公共方法?

我已经看到一些文档涉及基于事件的解决方案(听儿童事件),但这并不符合我的需要.除非你告诉我唯一的解决方案..

有任何想法吗?

pri*_*lus 11

ready: function() {
    this.domHost.getAll()
}
Run Code Online (Sandbox Code Playgroud)

来自文档:http: //polymer.github.io/polymer/

"domHost"是

"包含此元素的本地dom元素"

通过这种方式,您可以访问"父"及其功能.在我看来,这不是Polymer框架中的正确方法.

我在我的项目中使用它只是为了为父级定义回调函数.

(对不起,我的英语不好)

  • 还请解释为什么你的答案有效,以便它可以帮助未来的读者. (5认同)