Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问Handlebar模板中if语句中的数据_Javascript_Handlebars.js_Template Engine - Fatal编程技术网

Javascript 如何访问Handlebar模板中if语句中的数据

Javascript 如何访问Handlebar模板中if语句中的数据,javascript,handlebars.js,template-engine,Javascript,Handlebars.js,Template Engine,我向handlebar(版本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.de

我向handlebar(版本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值。我做错了什么?

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

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

然后在模板中我可以使用{{language}}
我想去哪里就去哪里。

我知道你已经通过解决方法解决了你的问题,但是注册一个助手来使用本机方式很麻烦

问题是,每个帮助器都会覆盖上下文,并将新的一个嵌套在父帮助器中,因此您必须更进一步,就像UNIX那样的目录

因此,要访问
each->if
中的lang,必须使用:

{{ ../../lang }}

检查我为您提供的解决方案,看看是否比注册助手更适合您。