@AlexNew22

Как вставить переменную в шаблон из шаблона?

Есть данные с БД
const data = {header: 'Наш заголовок', footer: 'Наш футер'}


Есть шаблон
body
    include /views/header.pug
    include /views/footer.pug


В header.pug у нас
p this text is #{text}

В footer.pug у нас
p this text is #{text}

Как нам в каждый из шаблонов пробрасывать свою уникальную переменную text?
Что бы получилось, что-то вроде
body
    include /views/header.pug text=data.header
    include /views/footer.pug text=data.footer

Но при этом эти переменные text дальше по шаблону не шли, а только видны для самих под шаблонов
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
HabrUser13
@HabrUser13
Web developer
В темплейт куда надо пробросить переменные, добавьте в самое начало "block variables":

tmpl1.pug
block variables

body
    include /views/header.pug text=data.header
    include /views/footer.pug text=data.footer


В темплейт откуда пробрасывается переменная, добавьте "append variables":

tmpl2.pug
append variables
  const data = {header: 'Наш заголовок', footer: 'Наш футер'}

include tmpl1.pug


Или если преременные из темплейта страницы нужно пробросить в layout:

page-about.pug
extends layout.pug

append variables
  const data = {header: 'Наш заголовок', footer: 'Наш футер'}


То в layout.pug будут доступен обьект data.

P.S.: рекомендую использовать новый pug-plugin для Webpack. Он сильно облегчает использование Pug.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы