如何在快速车把上实现条件?

时间:2018-10-14 18:55:24

标签: node.js express express-handlebars

{{# each subcategory }} {{# each this}}
    {{#if {{this.titleen} == "kitckendinning"}}
        <li>
          <a href="#">
            <span class="pull-right">(56)</span>{{this.title}}</a>
        </li>
    {{/if}}
{{/each}} {{/each}}

这引发了一些错误:

  

期望“ CLOSE_RAW_BLOCK”,“ CLOSE”,“ CLOSE_UNESCAPED”,“ OPEN_SEXPR”,“ CLOSE_SEXPR”,“ ID”,“ OPEN_BLOCK_PARAMS”,“ STRING”,“ NUMBER”,“ BOOLEAN”,“ UNDEFINED”,“ NULL ','DATA','SEP','OPEN'

此错误可能是{{#if {{this.titleen} == "kitckendinning"}}

我如何在快速车把上实现它?

1 个答案:

答案 0 :(得分:1)

您可以使用助手功能来做到这一点。

https://github.com/ericf/express-handlebars

这里是一个示例。您也可以在他的链接中找到它。

助手 助手功能或“助手”是可以在把手中注册并可以在模板中调用的功能。可以使用辅助程序来转换输出,遍历数据等。为了保持无逻辑模板的精神,辅助程序是应该定义逻辑的地方。

Handlebars附带了一些内置的帮助器,例如:带,是否,每个等。大多数应用程序将需要扩展这组帮助器以包括特定于应用程序的逻辑和转换。除了在Handlebars上定义全局助手外,该视图引擎还通过helpers配置属性支持ExpressHandlebars实例级助手,并在调用render()和renderView()方法时通过options.helpers支持渲染级助手。

以下示例显示了在每个级别指定的助手:

app.js:

创建一个超级简单的Express应用,该应用显示了注册ExpressHandlebars实例级帮助程序并在渲染级覆盖其中一个的基本方法。

var express = require('express');
var exphbs  = require('express-handlebars');

var app = express();

var hbs = exphbs.create({
    // Specify helpers which are only registered on this instance.
    helpers: {
        foo: function () { return 'FOO!'; },
        bar: function () { return 'BAR!'; }
    }
});

app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

app.get('/', function (req, res, next) {
    res.render('home', {
        showTitle: true,

        // Override `foo` helper only for this rendering.
        helpers: {
            foo: function () { return 'foo.'; }
        }
    });
});

app.listen(3000);

views / home.handlebars:

应用程序的主视图,该视图使用助手功能来帮助呈现内容。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Example App - Home</title>
</head>
<body>

    <!-- Uses built-in `if` helper. -->
  {{#if showTitle}}
    <h1>Home</h1>
  {{/if}}

    <!-- Calls `foo` helper, overridden at render-level. -->
    <p>{{foo}}</p>

    <!-- Calls `bar` helper, defined at instance-level. -->
    <p>{{bar}}</p>

</body>
</html>

希望它能工作。