我有这样的模板
<tbody>
{{#each topics as |topic|}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
我想在此渲染模板列表中插入额外的项目,如下所示:
<tbody>
{{#each topics as |topic|}}
{{#if someCondition}}
{{my-list-item}}
{{else}}
{{topic-list-item topic=topic}}
{{/if}}
{{/each}}
</tbody>
但问题是当topic
为真时,此解决方案会跳过一些someCondition
,即它会记录插入但替换。
是否有将项添加到模板渲染列表的解决方案?
更新:如果{{my-list-item}}
为真,我只想将someCondition
一次插入渲染列表
答案 0 :(得分:4)
如果您希望无论条件如何都始终显示topic-list-item,您可以通过删除else来实现。
<tbody>
{{#each topics as |topic|}}
{{#if someCondition}}
{{my-list-item}}
{{/if}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
答案 1 :(得分:1)
我投了上一个答案,但想添加另一个常见的用例:
如果您不介意通过附加属性扩展topic-list-item
对象(换句话说,如果附加模板依赖于topic-list-item
的任何属性),这将起作用:
<tbody>
{{#each topics as |topic|}}
{{#if topic.someBooleanProperty}}
{{my-list-item}}
{{/if}}
{{topic-list-item topic=topic}}
{{/each}}
</tbody>
或(与上面的答案相同,只是结构不同)
{{#each topics as |topic|}}
{{#if topic.someBooleanProperty}}
{{my-list-item}}
{{topic-list-item topic=topic}}
{{else}}
{{topic-list-item topic=topic}}
{{/if}}
{{/each}}
</tbody>