首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到Polymer2.0时,应该使用什么来替换Polymer.Element中的Polymer.Element()

升级到Polymer2.0时,应该使用什么来替换Polymer.Element中的Polymer.Element()
EN

Stack Overflow用户
提问于 2018-01-18 09:39:49
回答 1查看 221关注 0票数 2

我有一个poly1元素,它使用queryEffectiveChildren()来检查槽的DOM是否被填充:

if(this.queryEffectiveChildren('[slot="description"]').childElementCount > 0) {

queryEffectiveChildren函数在Polymer2.0的Polymer.Element中是不可用的,所以我应该使用什么来执行上面的检查?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-20 09:33:30

您可以使用Polymer.LegacyElementMixin使用queryEffectiveChildren (或其他遗留API):

代码语言:javascript
复制
customElements.define('x-foo', class extends Polymer.LegacyElementMixin(Polymer.Element) {
  connectedCallback() {
    super.connectedCallback();
    let x = this.queryEffectiveChildren('[slot="description"]');
    // ...
  }
});

演示

或等效值,如2.0升级指南中所描述的

代码语言:javascript
复制
customElements.define('x-foo', class extends Polymer.LegacyElementMixin(Polymer.Element) {
  connectedCallback() {
    super.connectedCallback();
    let x = Polymer.FlattenedNodesObserver
              .getFlattenedNodes(this)
              .filter(n => n.nodeType === Node.ELEMENT_NODE)
              .filter(n => n.parentNode.querySelector('[slot="description"]') === n);
              // OR: .filter(n => n.getAttribute('slot') === 'description');
  }
});

演示

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

https://stackoverflow.com/questions/48318059

复制
相关文章

相似问题

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