对于把手(版本1.0.0-rc.3)模板,我传递了两个变量,一个是json,另一个是包含现场语言的字符串。
self.template = template({ data: self.model, lang:self.lang });
然后在模板文件中我有以下结构:
{{#each data}}
//this is working
{{../lang}}
{{#if this.title}}
{{this.desc}}
//i've tried this
{{../lang}}
//and this
{{lang}}
{{/if}}
{{/each}}
...但我无法访问if语句中的lang值。我做错了什么?
答案 0 :(得分:2)
我知道您已经通过解决方法解决了您的问题,但注册帮助以执行原生方式非常麻烦。
问题在于每个Handlebars帮助程序都会覆盖上下文并将新的上下文嵌套在父上下文中,因此您必须更进一步,例如像 UNIX 这样的目录。
因此,要访问each->if
内的lang,您必须使用:
{{ ../../lang }}
答案 1 :(得分:0)
我通过创建一个把手辅助函数找到了解决方案:
Handlebars.registerHelper('language',function(){ return self.lang; });
然后在模板中我可以使用{{language}} 我想要的地方。