Je sais que c'est trop tard. Mais j'ai résolu ce problème avec le code suivant :
Java script :
Handlebars.registerHelper('eachData', function(context, options) {
var fn = options.fn, inverse = options.inverse, ctx;
var ret = "";
if(context && context.length > 0) {
for(var i=0, j=context.length; i<j; i++) {
ctx = Object.create(context[i]);
ctx.index = i;
ret = ret + fn(ctx);
}
} else {
ret = inverse(this);
}
return ret;
});
HTML :
{{#eachData items}}
{{index}} // You got here start with 0 index
{{/eachData}}
si vous voulez commencer votre index avec 1 vous devez faire le code suivant :
Javascript :
Handlebars.registerHelper('eachData', function(context, options) {
var fn = options.fn, inverse = options.inverse, ctx;
var ret = "";
if(context && context.length > 0) {
for(var i=0, j=context.length; i<j; i++) {
ctx = Object.create(context[i]);
ctx.index = i;
ret = ret + fn(ctx);
}
} else {
ret = inverse(this);
}
return ret;
});
Handlebars.registerHelper("math", function(lvalue, operator, rvalue, options) {
lvalue = parseFloat(lvalue);
rvalue = parseFloat(rvalue);
return {
"+": lvalue + rvalue
}[operator];
});
HTML :
{{#eachData items}}
{{math index "+" 1}} // You got here start with 1 index
{{/eachData}}
Gracias.
1 votes
Vous pouvez par exemple enregistrer votre propre aide à cet effet : gist.github.com/1048968 ou : pastebin.com/ksGrVYkz
1 votes
J'ai ajouté une autre solution à l'exemple Gist qui fonctionne avec handlebars-1.0.rc.1.js. gist.github.com/1048968#gistcomment-617934