迭代数组并使用元素索引打印另一个数组。 Handleblar - Ember.js

时间:2017-09-08 05:25:17

标签: ember.js handlebars.js

我想在handlebar中迭代一个数组,并且每个元素的索引在我已经定义的其他json或数组中打印一个元素。

类似的东西:

{{#each groups as |group index|}}
    {{#sticky-element top=41}}
       {{ad-component data=adGroup.[index].ad2 class="average-ad"}}
    {{/sticky-element}} 
{{/each}}

我的组件是这样的:

import Ember from 'ember';

export default Ember.Component.extend({
  adGroup: {
    '0': {"ad1": "div-gpt-ad-123-0", "ad2": "div-gpt-ad-123-4"},
    '1': {"ad1": "div-gpt-ad-123-1", "ad2": "div-gpt-ad-123-5"},
    '2': {"ad1": "div-gpt-ad-123-2", "ad2": "div-gpt-ad-123-3"}
  }
});

但可怜的是,在车把里做这件事是不可能的。

有些人建议我使用计算属性,但是如何为此任务创建计算属性?

我不知道过去两天是不是我的幸运日或者是怎么回事,因为我觉得这很简单,但我不能用这个,有些帮助吗?

1 个答案:

答案 0 :(得分:1)

如果将adGroup和数组结构化而不是对象

adGroup: [
  {"ad1": "div-gpt-ad-123-0", "ad2": "div-gpt-ad-123-4"},
  {"ad1": "div-gpt-ad-123-1", "ad2": "div-gpt-ad-123-5"},
  {"ad1": "div-gpt-ad-123-2", "ad2": "div-gpt-ad-123-3"}
]

你可以使用ember-composable-helpers

ember install ember-composable-helpers

并获得类似

的值
{{#each groups as |group index|}}
  {{#sticky-element top=41}}
   {{ad-component data=(get (object-at index adGroup) 'ad1') class="small-ad"}}
  {{/sticky-element}}
{{/each}}