【发布时间】:2020-03-28 17:31:29
【问题描述】:
我正在使用 Express JS 和 Handlebars 包,实际上我遇到了一些奇怪的事情。我不知道我是否遗漏了什么,我希望如此,但我无法弄清楚我的代码有什么问题。
我正在使用:https://github.com/ericf/express-handlebars
我无法在我的代码中使用 {{#each}} 语句。
这是我所拥有的:
views.ts
const Views = {
config: {
// views template configuration
extname: '.hbs',
helpers: {
modulesList: () => {
return appModules.modulesList();
},
foo: () => { return 'FOO!'; },
bar: ['tic', 'tac', 'toe'],
// bar: () => { return ['tic', 'tac', 'toe'] },
}
},
}
// Views is exported
app.ts
const exphbs = require('express-handlebars');
const views = require('twiice/views.ts');
app.engine('.hbs', exphbs(views.config));
app.set('view engine', '.hbs');
app.set('views', './twiice/views');
home.hbs
<div class="col">
{{#each bar}}
<h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
{{/each}}
<h6 class="text-light text-uppercase ls-1 mb-1">Overview</h6>
<h5 class="h3 text-white mb-0">Sales value</h5>
<h6 class="text-light text-uppercase ls-1 mb-1">{{foo}}</h6>
</div>
其实foo显示在html代码的最后一个h6上,表示加载了helper。
但是each 语句没有为bar 显示任何内容。
关注文档:https://handlebarsjs.com/guide/builtin-helpers.html
我看不出有什么问题:/
非常感谢您的帮助,我还在学习中! :)
【问题讨论】:
标签: javascript node.js typescript express handlebars.js