Polymer 聚合物2.0和多槽

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

我想构建一个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>

管理员
一些描述
艾米
小部件
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,然后是用户列表。然后,对于每个用户,我希望能够对其各自的字段执行相同的操作。我不确定如何使用我的第二个代码示例来实现这一点(如果有的话)。