Если бы я подходил к этой проблеме в своей собственной кодовой базе, я бы написал @tracked
функцию получения в Octane или вычисляемое свойство в предоктановом 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, и шаблоны легко написать / следовать