我正在尝试使用Handlebars.js遍历“ for”循环,但是在循环内部,我无法检索传递到模板的数据。这是我尝试的方法:
对于循环功能:
Handlebars.registerHelper('for', function (from, to, incr, block) {
var accum = '';
for (var i = from; i < to; i += incr)
accum += block.fn(i);
return accum;
});
模板文件:
{{#for 0 10 2}}
<tr>
<td class="p-0">
<input class="form-control" data-position="B5_{{id}}_{{B5.id}}" type="text" {{#if B5.isReadOnly}} readonly {{/if}} value="{{B5.value}}"/>
</td>
</tr>
{{/for}}
在循环内部,我无法检索通常在外部工作的{{id}}或{{B5.id}}。
这是我将数据传递到模板的方式:
export function renderSheet(template, data) {
try {
return Handlebars.compile(template)(data);
} catch (e) {
console.error(e);
return null;
}
}
请帮助我找出这里的问题。我将不胜感激。
更新 谢谢评论,我现在可以在循环内访问数据,但是我遇到了另一个问题,即如何在for循环内获取当前的“ i”值?例如:
{{#each @root.A5.value}}
如何用当前的i值替换5?