options.data在handlebars helper中有多个索引元素

时间:2013-07-31 21:44:33

标签: javascript handlebars.js

我有一个如下结构的把手模板:

{{#each array}}
    some stuff
    {{#each array2}}
        some more stuff
        {{#customHelper}}{{/customHelper}}
    {{/each}}
{{/each}}

每个数组包含四个项目。

把手助手看起来像这样:

Handlebars.registerHelper('customHelper', function(options){
    console.log(options.data);
});

options.data包含通过index的次数(#each)。如果有多个#each,则返回最里面的#each。但是,我想要最外面的options.data索引。

记录Object {index: 0, index: 0} Object {index: 1, index: 0} Object {index: 2, index: 0} Object {index: 3, index: 0} Object {index: 0, index: 1} Object {index: 1, index: 1} Object {index: 2, index: 1} Object {index: 3, index: 1} Object {index: 0, index: 2} Object {index: 1, index: 2} Object {index: 2, index: 2} Object {index: 3, index: 2} Object {index: 0, index: 3} Object {index: 1, index: 3} Object {index: 2, index: 3} Object {index: 3, index: 3} 给出:

#each

这表明两个索引都存在。第一个索引是最里面的options.data.index,第二个索引是最外面的索引。据我所知,在javascript对象中甚至不可能有两个相同的键。

记录index提供第一个index,而不是第二个。

是否可以访问第二个{{1}},如果是,可以如何访问?

1 个答案:

答案 0 :(得分:0)

我明白了。 删除索引:

delete options.data.index;

只会删除第一个,所以现在

options.data.index

将返回外部#each

的索引