查询把手中的块帮助程序和自定义帮助程序

时间:2018-08-23 12:54:57

标签: node.js handlebars.js

我无法在车把模板上执行以下代码。您能在下面的代码中指出错误吗?

{{#if (isGreen PARAM1 PARAM2)}}
          <td scope="col">GREEN</td>
{{/if}}

isGreen是自定义注册助手,如下所示:

Handlebars.registerHelper('isGreen', function (PARAM1, PARAM2) 
{
 //SOME STEPS
 return true;
}

以上内容的目的是,如果只有registerHelper返回if,则在true块中打印内容。

我收到以下错误:

Uncaught TypeError: Cannot read property 'includeZero' of undefined

1 个答案:

答案 0 :(得分:2)

除非我缺少您无法链接帮助者的内容:否则您无法在另一个帮助对象中调用帮助者。 #if是一个助手,isGreen是另一个。

您可以做的是将#if逻辑放入自定义帮助程序中。

您的html将如下所示:

{{#isGreen PARAM1 PARAM2)}}
          <td scope="col">GREEN</td>
{{/isGreen}}

您的脚本是这样的:

Handlebars.registerHelper('isGreen', function (PARAM1, PARAM2, options) {
    // Some steps where you'll set the doDisplay variable 
    // accordingly with your logic
    if (doDisplay) {
        // Your condition is met display something
        return options.fn(this);
    } else {
        // Your condition isn't met display nothing
        return "";
    }
}