Ember.js 如何在每个模板中插入额外的项
我有这样的模板Ember.js 如何在每个模板中插入额外的项,ember.js,handlebars.js,Ember.js,Handlebars.js,我有这样的模板 <tbody> {{#each topics as |topic|}} {{topic-list-item topic=topic}} {{/each}} </tbody> {{{#每个主题作为{主题} {{topic list item topic=topic} {{/每个}} 我想在该渲染模板列表中插入额外的项,如下所示: <tbody> {{#each topics as |topic|}} {{#if
<tbody>
{{#each topics as |topic|}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
{{{#每个主题作为{主题}
{{topic list item topic=topic}
{{/每个}}
我想在该渲染模板列表中插入额外的项,如下所示:
<tbody>
{{#each topics as |topic|}}
{{#if someCondition}}
{{my-list-item}}
{{else}}
{{topic-list-item topic=topic}}
{{/if}}
{{/each}}
</tbody>
{{{#每个主题作为{主题}
{{#如果某个条件}
{{我的列表项}
{{else}
{{topic list item topic=topic}
{{/if}
{{/每个}}
但问题是当someCondition
为真时,此解决方案将跳过一些主题
,即它将注意插入但替换
是否有将项目添加到模板渲染列表的解决方案
更新:如果
someCondition
为true,我只想将{{my list item}}
插入渲染列表一次如果您想不考虑条件始终显示主题列表项,那么可以通过删除其他项来完成
<tbody>
{{#each topics as |topic|}}
{{#if someCondition}}
{{my-list-item}}
{{/if}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
{{{#每个主题作为{主题}
{{#如果某个条件}
{{我的列表项}
{{/if}
{{topic list item topic=topic}
{{/每个}}
如果您想在任何情况下始终显示主题列表项,则可以通过删除else来实现
<tbody>
{{#each topics as |topic|}}
{{#if someCondition}}
{{my-list-item}}
{{/if}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
{{{#每个主题作为{主题}
{{#如果某个条件}
{{我的列表项}
{{/if}
{{topic list item topic=topic}
{{/每个}}
我对前面的答案投了赞成票,但想添加另一个常见用例:
如果您不介意通过附加属性扩展主题列表项
对象(换言之,如果附加模板依赖于主题列表项
的任何属性),这将起作用:
<tbody>
{{#each topics as |topic|}}
{{#if topic.someBooleanProperty}}
{{my-list-item}}
{{/if}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
{{{#每个主题作为{主题}
{{#如果主题为.someBooleanProperty}
{{我的列表项}
{{/if}
{{topic list item topic=topic}
{{/每个}}
或者(与上面的答案相同,只是结构不同)
{{{#每个主题作为|主题}
{{#如果主题为.someBooleanProperty}
{{我的列表项}
{{topic list item topic=topic}
{{else}
{{topic list item topic=topic}
{{/if}
{{/每个}}
我对前面的答案投了赞成票,但想添加另一个常见用例:
如果您不介意通过附加属性扩展主题列表项
对象(换言之,如果附加模板依赖于主题列表项
的任何属性),这将起作用:
<tbody>
{{#each topics as |topic|}}
{{#if topic.someBooleanProperty}}
{{my-list-item}}
{{/if}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
{{{#每个主题作为{主题}
{{#如果主题为.someBooleanProperty}
{{我的列表项}
{{/if}
{{topic list item topic=topic}
{{/每个}}
或者(与上面的答案相同,只是结构不同)
{{{#每个主题作为|主题}
{{#如果主题为.someBooleanProperty}
{{我的列表项}
{{topic list item topic=topic}
{{else}
{{topic list item topic=topic}
{{/if}
{{/每个}}
它将插入我的列表项
主题的大小时间,请查看更新某些条件
-取决于主题
或其他变量。所以你是说,someCondition
对于许多主题都是正确的,但是my list item
组件应该只包含一次,也许根本不应该包含任何条件,只需插入额外的项目我的列表项目
-这应该位于主题列表项目
-然后您可以从每个块中删除我的列表项目
。否则另一种方法将是{{{每个主题作为|主题索引|}
,这样您就可以使用像{{if(eq索引0)}这样的ember truth助手来检查索引了{{my list item}}{{/if}}`它将插入my list item
topics的大小时间,请查看更新someCondition
-取决于topic
或其他变量。因此您说的someCondition
对于许多主题都是正确的,但是my list item
组件应该只包含一次,可能此时不应该有任何条件总之,只需插入额外的项我的列表项
-这应该位于主题列表项的顶部
-然后您可以从每个块中删除我的列表项
。否则,另一种方法将是{{每个主题作为{主题索引}}
,这样您就可以使用类似{if(eq索引0)}的余烬truth助手来检查索引{{my list item}}{{/if}}`扩展对象肯定会工作,但修复模板看起来更容易。哦,我还看到你更新了问题。在这种情况下,我的答案不再有效。扩展对象肯定会工作,但修复模板看起来更容易。哦,我还看到你更新了问题。在这种情况下,我的答案不再有效。