Nodejs express-handlebars версия пакета 5.1.0, встроенные helpers lookup
Использую Nodejs, express, express-handlebars версия пакета 5.1.0
В express-handlebars используется последняя на данный момент версия "handlebars": "^4.7.6" Долго мучился с нативными (встроенные) helpers, особенно с lookup В итоге пришел к выводу, что либо я что-то не так делаю фундаментально на уровне подключения express-handlebars либо сам express-handlebars не работает с "handlebars": "^4.7.6" так как нужно. Потому что: Пример официальный: https://handlebarsjs.com/examples/bu...er-lookup.html Никаких ошибок с у меня нет, код работает, работают другие нативные (встроенные) helpers Сделал такое в качестве повторение указанного примера: app.get('/incoming', function(req, res) { res.render('incoming', { user : req.user.toObject(), isIncoming: true, obj : { people: ["Nils", "Yehuda"], cities: [ "Darmstadt", "San Francisco", ] } }); }); wiews/incoming.hbs: {{#each obj.people }} {{.}} lives in {{lookup ../cities @index}} {{/each}} В итоге получилось в выводе: "Nils lives in Yehuda lives in" А предпологалось как в примере: "Nils lives in Darmstadt Yehuda lives in San Francisco" Т.е. интересующий меня участок {{lookup ../cities @index}} не работает Попробовал вывести отдельно массивы, убедиться что они доступны оба : <br>- {{#each obj.people}} {{.}} {{/each}} <br> {{#each obj.cities}} {{.}} {{/each}} Вывод: "Nils Yehuda Darmstadt San Francisco" Массивы выводятся, они реально есть. Попробовал сделать так, переопределить obj.people в people, для большего соответствия примеру: {{#with obj.people as |people|}} {{#each obj.people }} {{.}} lives in {{lookup ../cities @index}} {{/each}} {{/with}} Результат не изменился. Что я не так делаю? |
C помощью собственного хелпера выяснил, что запись ../cities не является массивом
Если же вставить {{lookup people @index}} этот массив он видит Получается, что конструкция ../ для поиска в том же месте не работает почемуто |
Оказалось все просто:
{{lookup ../obj.cities @index}} вместо {{lookup ../cities @index}} Тему можно закрывать |
Часовой пояс GMT +3, время: 02:25. |