1

对于车把(版本 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 值。我究竟做错了什么?

4

2 回答 2

2

我知道您已经通过解决方法解决了您的问题,但是注册一个帮助程序以执行本地方式很麻烦。

问题是每个Handlebars帮助程序都会覆盖上下文并将新的内容嵌套在父项中,因此您必须更进一步,就像UNIX类目录一样。

因此,要访问 lang 内部,each->if您必须使用:

{{ ../../lang }}
于 2013-11-03T03:45:00.917 回答
0

我通过创建车把辅助函数找到了解决方案:

Handlebars.registerHelper('language', function() { return self.lang; });

然后在模板中,我可以在任何我想要的地方使用 {{language}}。

于 2013-04-13T23:05:43.813 回答