助手{{#if}}不会使用expressjs和express3-handlebars进行渲染

时间:2014-01-16 13:18:12

标签: javascript node.js express handlebars.js

使用expressjs和express3-handlebars在我的nodejs应用中遇到帮助器{{#if}}的问题:

app.js:

app.get('/view', function (req, res) {
    res.render('view', {
      valeur: true
    });
});

html:

{{#if valeur}}
   ok
{{else}}
   not ok
{{/if}}
当valeur等于true时,

'ok'不会渲染 ('不行'总是渲染) 感谢

1 个答案:

答案 0 :(得分:0)

基于阅读here中的示例用法文档,您的代码对我来说是正确的。

您的代码与以下代码段非常相似

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

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

模板片段

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

我建议您通过在呈现的模板中显示您的变量来调试您的应用。例如:

'view`模板:

The Valeur is {{valeur}}

{{#if valeur}}
   ok
{{else}}
   not ok
{{/if}}

根据我的个人经验,您会发现变量(在您的情况下为valeur)的值不符合预期,可能是null甚至false。我希望您可能已经简化了您的应用程序,并且其他一些代码会产生副作用,从而改变该值。

希望你已经明白了!