我想构建一个Polymer 2.0自定义元素DOM树,但我想根据每个子节点的标签类型填充子节点(插槽),所以当我编写HTML以使用我的自定义元素时不想要来写:
<group>
<title slot="title">admins</title>
<description slot="description">some description</description>
<users slot="users">
<user slot="user">
<name slot="name">Amy</name>
<dept slot="dept">Widgets</dept>
<phone slot="phone">1234</phone>
</user>
<user slot="user">
<name slot="name">Bill</name>
<dept slot="dept">Sprockets</dept>
<phone slot="phone">5678</phone>
</user>
<user slot="user">
<name slot="name">Chris</name>
<dept slot="dept">Rachets</dept>
<phone slot="phone">1357</phone>
</user>
</users>
</group>
这应该使用Polymer 2.0中的命名槽,但如果你有一个深层树,每个级别都有几个属性,你会发现它非常麻烦和多余。
我真正想做的只是写:
<group>
<title>admins</title>
<description>some description</description>
<users>
<user>
<name>Amy</name>
<dept>Widgets</dept>
<phone>1234</phone>
</user>
<user>
<name>Bill</name>
<dept>Sprockets</dept>
<phone>5678</phone>
</user>
<user>
<name>Chris</name>
<dept>Rachets</dept>
<phone>1357</phone>
</user>
</users>
</group>
这基本上只是XML。对我来说,这似乎比第一个例子更容易使用。正如您所看到的那样,随着树的深入,它变得非常拥挤和混乱。
所以我的问题是如何在Polymer 2.0中做后一个例子呢?它甚至可能吗?在我看来,这将是Polymer的主要用例,因此确实应该有一种实现它的方法。我找到的最接近的是这个网页,但它并没有真正做我想要的,因为每个自定义元素模板限制为一个“默认”插槽:
https://developers.google.com/web/fundamentals/getting-started/primers/shadowdom#slots
我不确定你想在这里实现什么,你确定你真的不想要qazxsw poi吗?在我看来,您只想根据您发布的XML列出一些元素。