Я пытаюсь передать массив данных пользовательскому помощнику с помощью express-handlebars. Я не могу заставить его работать.
Я могу передать строку, и я могу передать массив отдельному представлению, но я не могу передать массив пользовательскому помощнику. Вот мой код:
Строка, переданная пользовательскому помощнику (это работает)
// app.js
const hbs = expressHandlebars.create({
extname: 'html',
helpers: {
foo: function () {
return 'FOO!'
}
})
// views/layout/main.html
<h2>{{ foo }}</h2>
// Result --> FOO! outputed as expected
Передача массива в индивидуальное представление (это тоже работает)
// controllers/pageControllers.js
exports.getIndexPage = (req, res) => {
res.render('index', {
testList: ['one', 'two', 'three']
})
}
// views/index.html
{{#each testList}}
<div>{{this}}</div>
{{/each}}
// Result --> one, two, three outputted as expected
Массив передан пользовательскому помощнику (это НЕ работает)
// app.js
const hbs = expressHandlebars.create({
extname: 'html',
helpers: {
testList2: function () {
return ['one', 'two', 'three']
},
}
})
// views/layout/main.html
{{#each testList2}}
<div>{{this}}</div>
{{/each}}
// Result --> NOTHING. No output, no error messages.
Пользовательские помощники не принимают массивы? Тот же код работает на отдельном представлении. Тот же код работает для строки в пользовательском помощнике. Это просто не работает для массива в пользовательском помощнике.
Если пользовательские помощники НЕ принимают массивы, то как я могу получить массив данных в свой основной файл макета? Если он принимает массив, то что я делаю неправильно и как заставить это работать?
Спасибо.