私はこれを達成するために、カスタムヘルパーメソッドを作成しました:
/**
* Iterates over an array (like the native {{each}} helper,
* but adds to properties to each object: "_index" (a 0-based index) and "_position" (1-based index)
*/
Handlebars.registerHelper('iter', function(context, options) {
var fn = options.fn, inverse = options.inverse;
var ret = "";
if(context && context.length > 0) {
for(var i=0, j=context.length; i<j; i++) {
ret = ret + fn(_.extend({}, context[i], { _index: i, _position: i + 1 }));
}
} else {
ret = inverse(this);
}
return ret;
});
このヘルパーメソッドは、単純に(メンバーに_indexを追加し、 _position)を渡したオブジェクトに渡します。あなたがこの方法テンプレートを使用することができます
を(私が誤って既存のメンバーを上書きしないためにそれらをプレフィックスすることにしました。):
{{#each thumbs}}
<img src="{{src}} data-large="{{../[email protected]}}" data-index"={{_index}}" data-position"={{_position}}" alt="">
{{/each}}
しかし、私はあなたがここに_positionを必要としないと思います。
ありがとうございます@hashchange! –
@AdrianFlorescu私の喜び:) – hashchange