问题是在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