我有两个数组NOVNoticeTypeName和NOVNumber,它们都有相同数量的元素,现在我想遍历其中一个并将值并排打印为打击:
{{#each v.NOVNoticeTypeName as |nntn index|}}
{({{v.NOVNoticeTypeName.[index]}} {{v.NOVNumber.[index]}})
{{/each}}
我知道循环在Ember把手中是一团糟。我该如何实现?
首先,我不同意您的观点,即在Ember模板中循环是一团糟。如果您不把这样的观点当作事实,那将是很棒的。特别是如果它没有任何参数。
您想要实现的目标可以结合使用{{each}}
循环和模板帮助程序来完成。如您的示例所示,{{each}}
循环产生当前值和索引。您无法像使用Ember模板中的JavaScript array[index]
一样直接使用索引访问数组元素,但是可以使用模板助手来实现相同的目的。模板助手,将其称为{{object-at}}
,它将索引作为第一个参数,将数组作为第二个参数,并返回array[index]
。
让我们看一个例子,如何工作:
{{#let (array 'a' 'b' 'c') as |letters|}}
{{#let (array '1' '2' '3') as |numbers|}}
<ul>
{{#each letters as |letter index|}}
{{letter}} {{object-at index numbers}}
{{/each}}
</ul>
{{/let}}
{{/let}}
这样的模板帮助程序不会太复杂。但您完全不必担心,因为它已作为ember-composable-helpers的一部分提供。