相对于车把中另一个数组的索引迭代一个数组

问题描述 投票:0回答:2
{{#each locationTable as |locationShifts index|}}
   {{#each get reasons index as |value|}}
     {{value}}
   {{/each}}
{{/each}}

我想做这样的事情。一次使用2个助手“每个”和“获取”。我该如何实现这样的目标?

html ember.js handlebars.js ember-data each
2个回答
0
投票

应该是

{{#each (get reasons index) as |value|}}
  {{value}}
{{/each}}

但是我不确定100%get是否适用于数组上的数字索引。


0
投票

[如果我要在自己的代码库中解决此问题,我将在Octane中编写一个@tracked getter函数,或者在前辛烷值Ember中编写一个计算属性,该属性将两个数组映射到新对象中。最好将IMO映射到对它们之间的关系进行建模的对象中(而不是在代码库中的每个地方,将每个项目的索引分别放在两个单独的数组中,而不是rely,这在我看来并不直观,而且看起来很可能导致以后出现意外错误)。

假设我有一个姓名列表和一个角色列表。

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对数据进行建模,模板易于编写/关注

© www.soinside.com 2019 - 2024. All rights reserved.