Javascript 自定义把手每个辅助对象都带有索引
我编写了一个在数组上循环的助手,但现在我一直在为每次迭代获取可用的索引。我希望打印当前项目的索引Javascript 自定义把手每个辅助对象都带有索引,javascript,handlebars.js,Javascript,Handlebars.js,我编写了一个在数组上循环的助手,但现在我一直在为每次迭代获取可用的索引。我希望打印当前项目的索引 helpers: { each_min: function(ary, min, options) { if(!ary || ary.length == 0) return options.inverse(this); var result = []; for(var i = 0; i < min; ++i)
helpers: {
each_min: function(ary, min, options) {
if(!ary || ary.length == 0)
return options.inverse(this);
var result = [];
for(var i = 0; i < min; ++i)
result.push(options.fn(ary[i]));
return result.join('');
}
}
帮助程序:{
每个最小值:函数(ary、最小值、选项){
如果(!ari | | ari.length==0)
返回选项。反向(此);
var结果=[];
对于(变量i=0;i
我的模板
{{#each_min p.name 4}}
{{#if this}}
{{index}} {{this}}
{{else}}
<p>-</p>
{{/if}}
{{/each_min}}
{{{#each_min p.name 4}
{{{#如果这个}
{{index}}{{this}}
{{else}
-
{{/if}
{{/each_min}
查看车把文档,我在该部分找到了相关信息
块帮助程序还可以将私有变量注入到其子模板中。这对于添加不在原始上下文数据中的额外信息非常有用。。。确保在每个辅助对象中创建一个新的数据框,以指定其自己的数据。否则,下游助手可能会意外地改变上游变量
基于此,我做了以下更改:
模板:
{{#each_min p.name 4}}
{{#if this}}
{{@index}} {{this}}
{{else}}
<p>-</p>
{{/if}}
{{/each_min}}
{{{#each_min p.name 4}
{{{#如果这个}
{{@index}{{{this}}
{{else}
-
{{/if}
{{/each_min}
助手:
function(ary, min, options) {
if(!ary || ary.length === 0) {
return options.inverse(this);
}
var data;
if (options.data) {
data = Handlebars.createFrame(options.data);
}
var result = [];
for(var i = 0; i < min; ++i) {
if (data) {
data.index = i;
}
result.push(options.fn(ary[i], {data: data}));
}
return result.join('');
}
功能(ary、min、选项){
如果(!ari | | ari.length==0){
返回选项。反向(此);
}
var数据;
如果(选项.数据){
data=handlebar.createFrame(options.data);
}
var结果=[];
对于(变量i=0;i