Polymer 如何访问聚合物中的::内容元素

Polymer 如何访问聚合物中的::内容元素,polymer,Polymer,是否可以访问聚合物中“含量”区域的元素 让我举一个例子: <my-element> <my-sub-element1></my-sub-element1> <my-sub-element2></my-sub-element2> </my-element> 我想让我的元素使用ironajax从rest服务获取一些数据,然后在my-sub-element1和my-sub-element2中显示一些内容。这是否可以在

是否可以访问聚合物中“含量”区域的元素

让我举一个例子:

<my-element>
  <my-sub-element1></my-sub-element1>
  <my-sub-element2></my-sub-element2>
</my-element>

我想让我的元素使用
ironajax
从rest服务获取一些数据,然后在
my-sub-element1
my-sub-element2
中显示一些内容。这是否可以在不通过属性传输数据的情况下实现?my-sub-element1和2只能在my元素的上下文中使用


我试图做一个
document.querySelector(“:host::content”)
,但它返回了null,所以我想这不是方法:)

我认为甘特的答案是正确的一半。尽管选择子元素会起作用,但如果要使用
标记,您可能更喜欢只选择分布式节点。我认为它与
::content
选择器的关系更为密切

以下是Polymer的片段:


聚合物({
是‘简单内容’,
就绪:函数(){
var distributed=this.getContentChildren('#myContent');
console.log(distributed.length);
}
});

我想用更多细节和演示来补充其他可能正确的答案

Polymer.dom(this.querySelectorAll('my-sub-element')
虽然这个方法在您的示例用例中可以工作,但如果您的容器元素被包装在另一个容器中,它就会中断,如下所示。在这里,
my-element
将找不到任何带有
querySelectorAll('my-sub-element1')
的元素(尽管
my-element-wrapper
会)

此外,这限制了元素将来的可扩展性(例如,由无法修改原始元素的第三方进行),这可能不是您当前关心的问题


聚合物({
是‘我的元素’,
就绪:函数(){
var el=Polymer.dom(this.queryselectoral('my-sub-element1');
console.log('my-element>my-sub-element1:',
“长度=”+el.length,
'element='+(el.length>0?el[0]。标记名:''');
}
});
聚合物({is:'my-sub-element1'});
聚合物({is:'my-sub-element2'});
聚合物({is:'my element wrapper'});
<dom-module id="simple-content">
  <template>
    <content id="myContent"></content>
  </template>
  <script>
    Polymer({
      is: 'simple-content',
      ready: function() {
        var distributed = this.getContentChildren('#myContent');
        console.log(distributed.length);
      }
    });
  </script>
</dom-module>