{{#each locationTable as |locationShifts index|}}
{{#each get reasons index as |value|}}
{{value}}
{{/each}}
{{/each}}
我想做这样的事。同时使用两个助手"each"one_answers"get"。我怎样才能取得这样的成就?
如果我在自己的代码库中处理这个问题,我会用Octane编写一个@tracked
getter函数,或者用pre-onthen Ember编写一个计算属性,将两个数组映射到新对象中。IMO将它们映射到为它们之间的关系建模的对象中要好得多(而不是依赖代码库中各处的两个单独数组中的每个项目的索引,这不是我觉得直观的,而且以后可能会导致意外错误(。
假设我有一个名字列表和一个角色列表。
const names = ['Will', 'Wes', 'Janine'],
roles = ['Father', 'Son', 'Mother'];
const people = names.map((name, idx) => {
return {
name: name,
role: roles[idx]
};
});
您可以推断出它作为计算/跟踪属性的样子。关键是我已经设法将数据按逻辑分组。这样在模板中你就可以:
{{#each people as |person|}}
{{person.name}} is a {{person.role}}
{{/each}}
而不需要同时走到离散阵列。用javascript建模数据,模板易于编写/遵循
这将是
{{#each (get reasons index) as |value|}}
{{value}}
{{/each}}
但我不能100%确定get
是否适用于数组上的数字索引。