Ответ 1
Я нахожу решение здесь
передать блок с переменными
template.jade:
!!!
html
block vars
head
title #{pageTitle} - default www title
body
page.jade
extends template
block vars
- var pageTitle = 'Home'
Я использую шаблон в качестве базы и хочу, чтобы он знал о некоторых переменных, установленных на странице, использующей его...
Файл: template.jade
vars = vars || {some:"variables"}
!!! 5
head
title vars.some
Файл: page.jade
vars = {some:"things"} //- this does not get used from within template.jade
extends template
Я хочу, чтобы скомпилированный page.jade имел заголовок "вещи"
Я нахожу решение здесь
передать блок с переменными
template.jade:
!!!
html
block vars
head
title #{pageTitle} - default www title
body
page.jade
extends template
block vars
- var pageTitle = 'Home'
Вы можете использовать блоки:
template.jade:
!!! 5
head
block title
title variables
page.jade:
extends template
block title
title things
Иначе вы должны определить переменные в script (например, express). Насколько мне известно, переменные могут передаваться только через include, но не вверх по макету (template.jade в вашем случае).
Я думал, что блоки не будут работать для меня, потому что мне нужно использовать переменную в нескольких местах.
// base.jade
pageTitleVar = "Parent Title"
!!!
title !{pageTitleVar}
h1 !{pageTitleVar}
Оказывается, вы можете фактически указать один и тот же блок дважды в родительском шаблоне, а все, что передается ему дочернему шаблону, дублируется.
// base.jade
pageTitleVar = "Parent Title"
!!!
title
block pageTitleBlock
!{pageTitleVar}
h1
block pageTitleBlock
!{pageTitleVar}
// child.jade
extends base
pageTitleVar = "Child Title"
block pageTitleBlock
!{pageTitleVar}
Блоки FTW
Отличное и прокомментированное решение, чтобы добавить название:
"Мой проект - Страница" .
Или просто:
"Мой проект"
шаблон: template.jade
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}
какая-то страница: page.jade
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}