Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Nodejs express-handlebars версия пакета 5.1.0, встроенные helpers lookup 
:(
    Опции темы
Illusionoff
Дата 26.8.2020, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.2.2019

Репутация: нет
Всего: нет



Использую  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/builtin-helper-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 people }}
    {{.}} lives in {{lookup ../cities @index}}
    {{/each}}
{{/with}}


Результат не изменился.

Что я не так делаю?

Это сообщение отредактировал(а) Illusionoff - 26.8.2020, 10:22
PM MAIL   Вверх
Illusionoff
Дата 27.8.2020, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.2.2019

Репутация: нет
Всего: нет



C помощью собственного хелпера выяснил, что запись ../cities не является массивом

Если же вставить {{lookup people @index}} этот массив он видит
 
Получается, что конструкция ../ для поиска в том же месте не работает почему то
PM MAIL   Вверх
Illusionoff
Дата 27.8.2020, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.2.2019

Репутация: нет
Всего: нет



Оказалось все просто: 

{{lookup ../obj.cities @index}}
вместо
{{lookup ../cities @index}}

Тему можно закрывать
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Node.js | Следующая тема »


 




[ Время генерации скрипта: 0.1018 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.