Polymer 聚合物2.0和多槽
我想构建一个Polymer 2.0自定义元素DOM树,但我只想根据每个子元素的标记类型填充子元素(插槽),因此当我编写HTML以使用自定义元素时,不要编写:Polymer 聚合物2.0和多槽,polymer,polymer-2.x,custom-element,Polymer,Polymer 2.x,Custom Element,我想构建一个Polymer 2.0自定义元素DOM树,但我只想根据每个子元素的标记类型填充子元素(插槽),因此当我编写HTML以使用自定义元素时,不要编写: <group> <title slot="title">admins</title> <description slot="description">some description</description> <users slot="users
<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>
管理员
一些描述
艾米
小部件
1234
比尔
链轮
5678
克里斯
轴
1357
使用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>
管理员
一些描述
艾米
小部件
1234
比尔
链轮
5678
克里斯
轴
1357
这本质上就是XML。对我来说,这似乎比第一个例子更容易处理。正如您在命名插槽中所看到的,随着树越来越深,它变得非常拥挤和混乱
所以我的问题是如何在Polymer 2.0中实现后一个例子?有可能吗?在我看来,这将是聚合物的主要用途,所以确实应该有一种方法来实现它。我找到的最接近的是这个网页,但它并没有真正达到我想要的效果,因为每个自定义元素模板只能有一个“默认”插槽:
我不太确定你想在这里归档什么,你确定你真的不想
dom repeat
?在我看来,您只是想根据您发布的XML列出一些元素。唯一的缺点是您不能轻松地重复slot。可能是我在使用聚合物时最怀念的东西。我倾向于在模板中使用iron list,我想我真正想要的是能够设置属性。我知道你可以通过HTML属性来实现这一点,但我实际上想设置一个或多个属性,这些属性本身就是自定义元素,不能通过开始标记中的文本属性来表示——它们需要是子元素。所以我的问题更多的是关于如何将几个不同的自定义元素从HTML内部元素标记映射到属性,然后映射到影子DOM。我仍然不确定在这种情况下slots
的目的是什么。您希望在此处归档的最终结果是什么?以顶级节点为例,我希望在不同的位置使用3个不同的属性来渲染,例如title、description,然后是用户列表。然后,对于每个用户,我希望能够对其各自的字段执行相同的操作。我不确定如何使用我的第二个代码示例来实现这一点(如果有的话)。