如果使用把手在每个循环中与父变量进行比较

时间:2015-07-16 18:58:41

标签: if-statement comparison handlebars.js each parent

问题是在JSFiddle上设置的:https://jsfiddle.net/sshadmand/fNPvf/16812/

鉴于......

传递给模板的数据是:

{
    "curr_level": 0,
    "levels" : [item1, item2, item3 ...]
}

把手模板是:

<div>
    {{#each levels}}

            {{../curr_level}} == {{@index}}

            {{#ifeq ../../curr_level @index}}yes{{else}}no{{/ifeq}}

    {{/each}}
</div>

#ifeq帮助函数是:

Handlebars.registerHelper('ifeq', function(val1, val2, options) {
    console.log("if equal", val1, typeof(val1), val2, typeof(val2));
    if (val1 == val2){
        return options.fn(this);
    }
    return options.inverse(this);
});

问题是:

使用../访问父curr_level变量可以将值打印到屏幕,但是当curr_level变量发送给帮助程序时,它是未定义的。我试过将不同的深度传递给助手,例如curr_level,.. / curr_level,.. / .. / curr_level等

适用于所有深度&#34; val1&#34;在帮助器中未定义。同样,我可以在不使用比较助手时访问curr_level变量。

注意:这与询问父母的这个问题类似,但非常不同。主要的区别是我试图将父变量传递给辅助函数: Access properties of the parent with a Handlebars 'each' loop

0 个答案:

没有答案