HandlebarsJS如何创建registerHelper来检查JSON中的字符串

时间:2014-09-09 09:47:02

标签: handlebars.js

我想创建一个registerHelper来检查我的JSON文件中的特定字符串,但不知怎的,我无法让它工作。

所以,我的JSON返回(只是示例数据,但结构是正确的):

links : {
   name: "abc",
   href: "some url"
 },
 {
   name: "def"
   href: "some url"
 }
 {
   name: "ghi"
   href: "some url"
 }
 {
   name: "jkl"
   href: "some url"
 }
 and so on...

因此,根据名称,我想显示不同的HTML内容,所以我尝试创建一个帮助器:

Handlebars.registerHelper('specific', function(specs, options) {
    if("abc" || "jkl"){
        return options.fn(this);
    } else {
        return options.inverse(this);
    }
});

和html:

{{#specific links}}
  <h1>blablab</h1>
{{/specific}}

所以我有两个问题:

1)支票不起作用 2)如果条件为假,则不应显示html

我怎样才能实现这一目标?我做错了什么?

1 个答案:

答案 0 :(得分:0)

帮助者第二行的if是问题所在。您没有将您的名字值与字符串文字进行比较&#34; abc&#34;或者&#34; jkl&#34;,你只是问这些字符串文字是否真实(它们是真的),所以条件总是会通过,无论如何,导致你的HTML总是被显示。

相反它应该是:

if(spec.name === "abc" || spec.name === "jkl"){

然后,您将实际将名称值与字符串进行比较。