【问题标题】:How to access data inside if statement in Handlebars templates如何在 Handlebars 模板中访问 if 语句中的数据
【发布时间】:2013-04-13 20:53:26
【问题描述】:

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

【问题讨论】:

    标签: javascript handlebars.js template-engine


    【解决方案1】:

    我知道您已经通过解决方法解决了您的问题,但是注册一个 Helper 以执行原生方式很麻烦。

    问题是每个Handlebars 助手都会覆盖上下文并将新的嵌套在父级中,所以你必须更进一步,就像一个 UNIX 类目录。 p>

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

    {{ ../../lang }}
    

    【讨论】:

      【解决方案2】:

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

      Handlebars.registerHelper('语言', function() { 返回self.lang; });

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

      【讨论】:

      • 检查我为您提供的解决方案,看看是否比注册助手更适合您。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2018-12-26
      • 2011-10-01
      • 1970-01-01
      • 2013-09-28
      • 1970-01-01
      相关资源
      最近更新 更多