有没有办法以编程方式将内容从 lightDOM 分发(插入)到 ShadowDOM?
我想将每个子节点包装成一个元素。例如 :
<my-list>
<span>first element</span>
<div>second element</div>
<a>third element</a>
</my-link>
分发为
<my-list>
<ul>
<li>
<span>first element</span>
</li>
<li>
<div>second element</div>
</li>
<li>
<a>third element</a>
</li>
</ul>
</my-link>
我不仅需要它以这种方式呈现,而且还需要委托整个 HTML 行为(绑定、事件等),因为每个分布式节点都可能包含整个应用程序。
我尝试在回调时将<content select=":nth-child(..)">
元素附加到模板attached
attached: function(){
//ensure any element upgrades have been processed
this.async(function asyncAttached(){
var list = this.$.container;
this.children.array().forEach(function(child, childNo){
var li = document.createElement("LI");
console.log(list, li, child);
li.innerHTML = '<content select=":nth-child('+childNo+')"></content>';
list.appendChild(li);
});
});
}
但它不起作用(可能是因为内容已经分发)。
在这里提琴
一般来说,我想要实现的是类似http://jsbin.com/hegizi/3/edit的东西,但没有硬编码类名,并使其与可变数量的子节点一起工作。
更重要的是,似乎:nth-child
本机不支持:https ://github.com/Polymer/polymer/issues/470