首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子Web组件的调用方法

子Web组件的调用方法
EN

Stack Overflow用户
提问于 2015-07-13 23:33:01
回答 1查看 2.5K关注 0票数 5

我真的很难弄清楚如何调用嵌套聚合物web组件的函数。

这是标记:

代码语言:javascript
复制
<rise-playlist>
  <rise-playlist-item duration="5">
     <rise-distribution distribution='[{"id":"VGZUDDWYAZHY"}]'></rise-distribution>
  </rise-playlist-item>
</rise-playlist>

rise-distribution组件有一个我想从rise-playlist内部调用的canPlay函数。

rise-playlistdom-module定义如下所示:

代码语言:javascript
复制
<dom-module id="rise-playlist">
  <template>
    <content id="items" select="rise-playlist-item"></content>
  </template>
</dom-module>

我可以像这样成功地访问rise-distribution元素:

代码语言:javascript
复制
var distribution = Polymer.dom(this.$.items[0]).querySelector("rise-distribution");

但是,当我尝试调用distribution.canPlay()时,它告诉我distribution.canPlay不是一个函数。

我这样定义了rise-playlist-itemdom-module

代码语言:javascript
复制
<dom-module id="rise-playlist-item">
  <content id="dist" select="rise-distribution"></content>
</dom-module>

我不确定我是否需要那个<content>标签,尽管两者都不起作用。

有什么想法吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-04-28 20:39:21

我知道已经有一段时间了,但我相信这个问题仍然会发生,因为它被观看了很多次。

您的组件定义可能存在问题。让我解释一下。下面是将子组件放入DOM中的方法:

代码语言:javascript
复制
<your-child-component></your-child-component>

这应该是你的组件的定义:

代码语言:javascript
复制
Polymer({

  is: 'your-child-component',

  apiMethod: function() {
  //some stuff
  }
});

如果您由于错误或由于复制-粘贴错误而输入了错误的is: 'your-child-component'部件,因此它将不会反映<your-child-component>,因为您将:

代码语言:javascript
复制
this.$$('your-child-component').apiMethod();

将告诉您没有您愿意调用的方法。

正确地从DOM <your-child-component>中识别和选择聚合物,但是如果您有不同的is属性(例如is: your_child_component>),它不会将其API附加到您选择的dom元素。

如果有人遇到这个问题,我希望它会有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31387523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档