как передавать переменные между шаблонами jade
Я использую шаблон в качестве базы и хочу, чтобы он знал о некоторых переменных, установленных на странице, которая его использует...
: шаблон.Джейд
vars = vars || {some:"variables"}
!!! 5
head
title vars.some
: страницы.Джейд
vars = {some:"things"} //- this does not get used from within template.jade
extends template
мне нужна скомпилированная страница.Джейд, чтобы иметь название "вещи"
5 ответов:
Я нашел решение здесь
пройти блок с переменными
шаблон.Джейд:
!!! html block vars head title #{pageTitle} - default www title bodyстраница.Джейд
extends template block vars - var pageTitle = 'Home'
Вы можете использовать блоки:
шаблон.Джейд:
!!! 5 head block title title variablesстраница.Джейд:
extends template block title title thingsеще вы должны определить переменные в вашем скрипте (например, express). Насколько я знаю, переменные могут передаваться только через includes, но не вверх по макету (шаблону.нефрит в вашем случае).
Я думал, что блоки не будут работать для меня, потому что мне нужно было использовать переменную в нескольких местах.
// base.jade pageTitleVar = "Parent's Title" !!! title !{pageTitleVar} h1 !{pageTitleVar}оказывается, вы можете фактически указать один и тот же блок дважды в Родительском шаблоне, и все, что дочерний шаблон передает ему, дублируется.
// base.jade pageTitleVar = "Parent's Title" !!! title block pageTitleBlock !{pageTitleVar} h1 block pageTitleBlock !{pageTitleVar} // child.jade extends base pageTitleVar = "Child's Title" block pageTitleBlock !{pageTitleVar}блоки FTW
отличное и прокомментированное решение для добавления заголовка следующим образом:
"Мой Проект-Страница".
Или просто так:
"Мой Проект"
шаблон: шаблон.Джейдdoctype 5 html(lang="en") head //- setting the page title to be dynamic block vars - var defaultTitle = "My Project" - var pageTitle = pageTitle title #{defaultTitle}#{pageTitle}страница: страница.Джейд
extends base //- custom page title block append vars pageTitle = " - The Page"
Как насчет использования шаблон включает в себя?
// vars.jade - var name = "Chris" #{ nick = "StackOverflow" } // page.jade doctype html html head title= title link(rel='stylesheet', href='/stylesheets/style.css') body h1= title include vars p Welcome to #{title} #{name} #{nick}
Comments