Handlebars.js的条件"if语句"帮助器

war*_*art 16 handlebars.js

我正在尝试为Handlebars.js编写一个条件if语句帮助器.基本上,如果是Apply Now页面,我想在链接上放置一个"活动"类.

帮手:

  Handlebars.registerHelper('isApplyNow', function(block) {
    if(this.title == "Apply Now") {
      return block(this);
    } else {
      return block.inverse(this);
    }
  });
Run Code Online (Sandbox Code Playgroud)

和模板:

  <ul>
    {{#each pages}}
      <li>
        {{#isApplyNow}}
          <a href="{{url}}" class ='active'>{{this.title}}</a>
        {{else}}
          <a href="{{url}}">{{this.title}}</a>
        {{/if}}
      </li>
    {{/each}}  
  </ul>
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个非常简单的javascript错误:

Uncaught [object Object] in handlebars-1.0.0.beta.2.js:595
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到我写这个不正确吗?

谢谢!

参考文章:

在Handlebars模板中的If块中调用帮助器

http://thinkvitamin.com/code/handlebars-js-part-2-partials-and-helpers/

kap*_*ron 21

我确实看到一个小的语法错误,我认为可能是问题.如果您打算使用一个包含块的帮助器,则必须使用帮助程序名称将其关闭.看看我是如何取代你{{/if}}{{/isApplyNow}},就像这样:

    {{#isApplyNow}}
      <a href="{{url}}" class ='active'>{{this.title}}</a>
    {{else}}
      <a href="{{url}}">{{this.title}}</a>
    {{/isApplyNow}}
Run Code Online (Sandbox Code Playgroud)