Я пытаюсь зарегистрировать свои собственные вспомогательные методы для выражений-рулей, чтобы использовать их в представлениях и частичках.Моя цель - создать функцию поиска в моей части навигации.Но я даже не заставляю своего помощника работать с моим представлением индекса.
Я много думал ...
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-тег
- Второй говорит: «Ошибка: ошибка разбора в строке ...»
- Третий говорит: «Ошибка: отсутствует помощник:« sayHello »»
Не имеет значения, еслипоместите "elem" в определение функции, оно все еще не работает.
Я также попытался реализовать данный пример из https://github.com/ericf/express-handlebars с помощью foo и bar helper (не импортируя их с помощью require (), ядействительно сделал то же самое), но это не работает для меня.Он никогда не отображает никаких возвращаемых значений.
У вас, ребята, есть идеи?