【发布时间】:2019-05-16 13:22:24
【问题描述】:
我尝试将自己的辅助方法注册到 express-handlebars 以在视图和局部视图中使用它。我的目标是在我的导航部分中创建一个搜索功能。但我什至没有让我的助手处理我的索引视图。
我尝试了很多想法..
App.js
const exphbs = require('express-handlebars')
const helpers = require('./public/helper/hbs-helper');
const express = require('express')
const app = express()
const hbs = exphbs.create({
layoutsDir: path.join(__dirname, 'views/layouts'),
partialsDir: path.join(__dirname, 'views/partials'),
helpers: helpers
})
app.enable('trust proxy')
app.engine('handlebars', hbs.engine)
app.engine('.hbs', exphbs({
extname: '.hbs'
}))
app.set('view engine', 'handlebars')
app.set('views', path.join(__dirname, 'views'))
hbs-helper.js
module.exports = {
sayHello: function(elem) {
return 'hello!'
}
}
index.hbs - 我在这里尝试了所有方法,但不是同时;):
<p>{{sayHello}}</p>
<p>{{#sayHello}}</p>
<p>{{sayHello this}}</p>
- 第一个给了我一个空的 p-tag
- 第二个说“错误:在线解析错误...”
- 第三个说“错误:缺少助手:“sayHello””
在函数定义中加上“elem”也没关系,还是不行。
我还尝试使用 foo 和 bar 助手来实现来自https://github.com/ericf/express-handlebars 的给定示例(不使用 require() 导入它们,我确实这样做了),但它对我不起作用。它从不显示任何返回值。
你们有什么想法吗?
【问题讨论】:
标签: express express-handlebars handlebarshelper