我有一個非常簡單的車把幫助文件中helpers/handlebars.js
:如何使車把幫手全球(在expressjs)
var hbs = require('express-handlebars');
hbs.registerHelper("inc", function(value, options) {
return parseInt(value) + 1;
});
然而,正如所料,我不能指{{#inc}}
助手,因爲我沒有通過它進入res.render()
函數。有沒有辦法讓我的文件全局助手和「自動包含」?
編輯:
試圖@ 1cgonza的真棒的答案後,我得到:
hbs.registerHelper("inc", function(value, options) {
^
TypeError: undefined is not a function
當運行應用程序。這裏是app.js
:
var engine = require('express-handlebars');
require('./helpers/handlebars.js')(engine);
app.engine('hbs', engine({defaultLayout: 'layout', extname: 'hbs'}));
app.set('view engine', 'hbs');
任何想法?
這肯定會奏效。但是,我收到上述錯誤 - 它看起來很熟悉嗎?謝謝! – n0pe
啊,表達式句柄有另一種創建助手的方法,與我習慣的有點不同,請參閱他們的[docs](https://github.com/ericf/express-handlebars#helpers) – 1cgonza
我已經編輯我的答案與另一個應該與你正在使用的把手模塊一起工作。 – 1cgonza