If statement 如果在每个循环中使用手柄与父变量进行比较
问题是在JSFIDLE上设置的: 给定… 传递到模板的数据为:If statement 如果在每个循环中使用手柄与父变量进行比较,if-statement,comparison,handlebars.js,each,parent,If Statement,Comparison,Handlebars.js,Each,Parent,问题是在JSFIDLE上设置的: 给定… 传递到模板的数据为: { "curr_level": 0, "levels" : [item1, item2, item3 ...] } 车把模板为: <div> {{#each levels}} {{../curr_level}} == {{@index}} {{#ifeq ../../curr_level @index}}yes{{else}}no{{/ifeq
{
"curr_level": 0,
"levels" : [item1, item2, item3 ...]
}
车把模板为:
<div>
{{#each levels}}
{{../curr_level}} == {{@index}}
{{#ifeq ../../curr_level @index}}yes{{else}}no{{/ifeq}}
{{/each}}
</div>
问题是:
使用../works访问父curr_级别变量可将值打印到屏幕上,但当curr_级别变量发送给帮助器时,该变量未定义。我尝试过向助手传递不同的深度,例如curr\u级别、../curr\u级别、../curr\u级别等
对于所有深度,辅助对象中的“val1”未定义。同样,当curr_level变量不使用比较助手时,我可以访问它
注意:这与询问家长的问题类似,但与此非常不同。主要区别在于我试图将父变量传递给助手函数:
{{{ifeq../curr\u level@index}}
应该可以正常工作<代码>{{{ifeq../curr_level@index}}应该可以正常工作。
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);
});