Передать массив в качестве параметра для рендеринга вида в ветке - PullRequest
0 голосов
/ 30 апреля 2018

Я довольно новичок в Twig.js, и обратите внимание, что в нем не хватает документации. На самом деле, я мог найти только очень основную информацию об использовании на их GitHub wiki .

Мои взгляды основаны на множестве переменных. Все виды простираются от layout.twig, включая navbar.twig. Последний принимает много параметров, таких как цвет, имена и другие, которые я еще не реализовал.

Проблема в том, что мне нужно было бы передавать много переменных каждый раз, когда представление визуализируется. Поэтому я подумал, что решением будет каждый раз передавать массив вместо нескольких файлов. Там возникает мой вопрос, как мне взаимодействовать с этим массивом Мое текущее и неэффективное решение может быть представлено при отображении ошибки:

res.render('error', {title: appConfig.name, color: appConfig.color (...)});

Было бы лучше, если бы я мог передать массив и затем взаимодействовать с ним внутри моего представления ветки.

Я открыт для других решений. Возможность доступа к appConfig изнутри представления была бы одной из них, хотя я не думаю, что это возможно. Если это так, пожалуйста, скажите мне, как! Я буду благодарен тебе навсегда.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Pass appConfig:

var appConfig = { name: 'Jeremy', color: 'green' };
res.render('home', appConfig );

Сделать это:

<div class="{{ color }}">Hello {{ name }}</div>

Twig может отлично работать и с вложенными объектами:

var navConfig = { color: 'salmon' }
res.render('home', { nav: navConfig, name: 'Arnold' })

<nav class="{{ nav.color }}">{{ name }}</nav>
0 голосов
/ 30 апреля 2018

Вы можете просто разобрать appConfig в JSON Object, используя JSON.parse. Примечание. JSON.parse может связать текущий поток, потому что это синхронный метод. Поэтому, если вы планируете анализировать большие объекты JSON, используйте потоковый анализатор json.

...