使用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'不会渲染 ('不行'总是渲染) 感谢
答案 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
。我希望您可能已经简化了您的应用程序,并且其他一些代码会产生副作用,从而改变该值。
希望你已经明白了!