各ループで親の@index値にアクセスする方法は?
次のことを試しました。
{{#each company}}
{{#each employee}}
{{../@index}} // how to access company index here?
{{/each}}
{{/each}}
これにより、エラーが発生します。
'ID'を期待して、'DATA'を取得しました
各ループで親の@index値にアクセスする方法は?
次のことを試しました。
{{#each company}}
{{#each employee}}
{{../@index}} // how to access company index here?
{{/each}}
{{/each}}
これにより、エラーが発生します。
'ID'を期待して、'DATA'を取得しました
これは私のために働いた:
{{#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
Ember v2.2.0 には新しい構文があるようです。ここですべての答えを試しましたが、うまくいきませんでした。
私が見つけたのは、親ループのインデックスと子ループのインデックスに名前を付けることでした。
{{#each parents as |parent parentIndex|}}
{{parentIndex}}
{{#each children as |child childIndex|}}
{{parentIndex}}
{{childIndex}}
{{/each}}
{{/each}}
ヘルパー メソッドを登録します。
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}}