Polymer 聚合物2中的等效物

Polymer 聚合物2中的等效物,polymer,polymer-1.0,polymer-2.x,Polymer,Polymer 1.0,Polymer 2.x,我有一个自定义元素 <!-- element template --> <dom-module id="custom-element"> <template> <style></style> <div class="toggle"> <slot id="toggleContent" name="toggle"></slot> </div> <

我有一个自定义元素

<!-- element template -->
<dom-module id="custom-element">
  <template>
    <style></style>
    <div class="toggle">
      <slot id="toggleContent" name="toggle"></slot>
    </div>
  </template>
  <script>...</script>
</dom-module>

<!--usage-->
<custom-element>
  <div slot="toggle">I'm the toggle</div>
</custom-element>
它将返回
我是切换开关

然而在聚合物2中<代码>getContentChildren不再受支持,并以这种方式执行

this.$.toggleContent.assignedNodes({flatten: true}).filter(function(n) {
  return (n.nodeType === Node.ELEMENT_NODE);
});
不返回所需的元素,
我是切换开关

如何使用Polymer 2中的
assignedNodes()
获得等效结果

请看下面
谢谢。

请使用以下代码:

this.shadowRoot
  .querySelector('#toggleContent')
  .assignedNodes({flatten:true})
  .filter(n => n.nodeType === Node.ELEMENT_NODE)
但是如果您有一个
插槽
,那么您可以执行以下操作:

this.shadowRoot
      .querySelector('slot')
      .assignedNodes({flatten:true})
      .filter(n => n.nodeType === Node.ELEMENT_NODE)
初始化阴影DOM时会创建
this.$
哈希。节点 动态创建的数据不会添加到
此。$
哈希中。因此,您必须使用
this.shadowRoot.querySelector

演示后更新


\u togglel
是一个数组/对象,您正在将其与元素进行比较。因此,它总是返回
false
。因此,使用
var equal=element单击===this.toggleEl[0]
就像您在
polymer 1中所做的那样使用以下代码:

this.shadowRoot
  .querySelector('#toggleContent')
  .assignedNodes({flatten:true})
  .filter(n => n.nodeType === Node.ELEMENT_NODE)
但是如果您有一个
插槽
,那么您可以执行以下操作:

this.shadowRoot
      .querySelector('slot')
      .assignedNodes({flatten:true})
      .filter(n => n.nodeType === Node.ELEMENT_NODE)
初始化阴影DOM时会创建
this.$
哈希。节点 动态创建的数据不会添加到
此。$
哈希中。因此,您必须使用
this.shadowRoot.querySelector

演示后更新


\u togglel
是一个数组/对象,您正在将其与元素进行比较。因此,它总是返回
false
。因此,使用
var equal=element单击===this.toggleEl[0]
就像你在
polymer 1
中所做的那样,不,这不是问题所在。你介意看看下面这张照片吗?既然
this.\u togglel
是一个数组,为什么不像在
polymer 1
中那样使用
var equal=element clicked==this.togglel[0]
?哦,是的!你是对的!谢谢你指出这一点。当我查看控制台打印时,它看起来像是返回了一个对象而不是数组,因此我从未想过它。佩巴克。你介意修改一下你的答案吗?我很乐意接受?谢谢嗯,不,这不是问题所在。你介意看看下面这张照片吗?既然
this.\u togglel
是一个数组,为什么不像在
polymer 1
中那样使用
var equal=element clicked==this.togglel[0]
?哦,是的!你是对的!谢谢你指出这一点。当我查看控制台打印时,它看起来像是返回了一个对象而不是数组,因此我从未想过它。佩巴克。你介意修改一下你的答案吗?我很乐意接受?谢谢