57

各ループで親の@index値にアクセスする方法は?

次のことを試しました。

{{#each company}}
{{#each employee}}
  {{../@index}} // how to access company index here?
{{/each}}
{{/each}}

これにより、エラーが発生します。

'ID'を期待して、'DATA'を取得しました

4

5 に答える 5

27

これは私のために働いた:

{{#each company}}
{{setIndex @index}}
{{#each employee}}
  {{../index}}
{{/each}}
{{/each}}

JS:

Handlebars.registerHelper('setIndex', function(value){
    this.index = Number(value + 1); //I needed human readable index, not zero based
});

オブジェクトにプロパティcompanyがないことを確認してください。index

于 2013-03-19T17:03:51.470 に答える
5

Ember v2.2.0 には新しい構文があるようです。ここですべての答えを試しましたが、うまくいきませんでした。

私が見つけたのは、親ループのインデックスと子ループのインデックスに名前を付けることでした。

{{#each parents as |parent parentIndex|}}
    {{parentIndex}}
    {{#each children as |child childIndex|}}
        {{parentIndex}}
        {{childIndex}}
    {{/each}}
{{/each}}
于 2016-01-12T19:15:37.653 に答える
1

ヘルパー メソッドを登録します。

Handlebars.registerHelper('eachWithIndex', function(cursor, options) {
    var fn = options.fn, inverse = options.inverse;
    var ret = "";
    var idx = -1;
    //console.log(cursor);
    cursor.forEach(function(item){
        idx++;
        console.log(item.index);
        item.index = idx;
        ret+=fn(item);
    });
    return ret;
}); 

ハンドルバー テンプレート:

{{#eachWithIndex outer}}
  {{#each inner}}
   {{../index}} // access outer index like this. I used hanlebars V1.3.0
   {{index}} // access inner index
  {{/each}}
{{/eachWithIndex}}
于 2014-06-14T18:52:44.200 に答える