我在使用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/