javascript - helpers {{#if }} 不使用expressjs 和express3-handlebars 进行渲染

标签 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' 不会渲染 (“不好”总是渲染) 谢谢

最佳答案

根据阅读 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。我希望您可能已经简化了您的应用程序,并且更改该值的其他代码片段会产生副作用。

希望你已经明白了!

关于javascript - helpers {{#if }} 不使用expressjs 和express3-handlebars 进行渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21162922/

相关文章:

javascript - Express JS 的 session.generate() 函数的源代码在哪里?

javascript - 如何在日期选择器中将静态日期设置为起始日期?

regex - 特定于子域​​的 Nginx 静态文件

node.js - 如何在保持 Express 服务器运行的同时制作 grunt watch 指南针?

node.js - Mongoose Auth Error : command find requires authentication. 但我做到了

javascript - 如何跨文件交叉引用私有(private)成员拆分 ES6 类定义?

javascript - Node Express 应用程序调用 mssql 表示连接已关闭

javascript - 为什么 static var 语法有时会抛出错误,有时不会

javascript - 累积 promise 值 "functionally"

javascript - 如何使用 javascript 屏幕抓取多页面应用程序?