我有两个使用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>
&#13;
正如您所看到的,我想知道您如何轻松地从孩子那里访问getAll
公共方法?
我已经看到一些文档涉及基于事件的解决方案(听儿童事件),但这并不符合我的需要。除非你告诉我唯一的解决方案..
有什么想法吗?
答案 0 :(得分:11)
ready: function() {
this.domHost.getAll()
}
来自文档: http://polymer.github.io/polymer/
“domHost”是
“包含此元素的本地dom元素”
通过这种方式,您可以访问“父”及其功能。 在我看来,这不是Polymer框架中的正确方法。
我在我的项目中使用它只是为了为父级定义回调函数。
(抱歉我的英语不好)
答案 1 :(得分:0)
确认..我使用了两种方法 - 1.父显式设置子属性指向父级,以及2. domHost。内置时,domHost更容易,更好。 在方法1中,您必须在设置属性之前确保子项已准备就绪。