Javascript Riot.js中每个项目有多个元素

Javascript Riot.js中每个项目有多个元素,javascript,riot.js,Javascript,Riot.js,如何在没有容器元素的情况下为每个属性创建多个元素 更具体地说,我想创建一个定义列表,其预期结构如下: <dl> <dt>Key1</dt> <dd>Value1</dd> <dt>Key2</dt> <dd>Value2</dd> </dl> 关键1 价值1 键2 价值2 所以,基本上我想做一些 <dl> <each each=

如何在没有容器元素的情况下为每个属性创建多个元素

更具体地说,我想创建一个定义列表,其预期结构如下:

<dl>
  <dt>Key1</dt>
  <dd>Value1</dd>

  <dt>Key2</dt>
  <dd>Value2</dd>
</dl>

关键1
价值1
键2
价值2
所以,基本上我想做一些

<dl>
    <each each="{ item in data }">
      <dt>{ item.id }</dt>
      <dd>{ item.name }</dd>
    </each>
</dl>

{item.id}
{item.name}
但是在生成的HTML中省略了
每个
元素,使其成为有效的HTML。
请注意,Riot中不存在此类
每个
标记


更新:似乎特别是对于
tbody>each>tr
组合,我上面描述的解决方案可以工作-空
每个
元素都移动到表之前,并且
tr
内部的元素直接位于
tbody
下。但是,上下文有一个问题-
tr
s无法访问
item
变量,这使得此案例无效。

如果不在单元格中嵌套元素,很难做到这一点。通过ul和li的认证,不是更容易做到这一点吗,比如:

<ul each="{ opts.data }">
   <li>{ id }</li>
   <li>{ name }</li>
   <li>{ description }</li>
</ul>

这里是一个使用RiotJS的演示:

在实现删除父自定义标记的可能性之前,目前这似乎是不可能的


请参阅。

这已通过
元素解决,您应该使用:

<virtual each="{ item in data }">
  <dt>{ item.id }</dt>
  <dd>{ item.name }</dd>
</virtual>

{item.id}
{item.name}

请接受丹尼尔的回答
<virtual each="{ item in data }">
  <dt>{ item.id }</dt>
  <dd>{ item.name }</dd>
</virtual>