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>