Templates 如何在jade模板之间传递变量
我使用一个模板作为基础,并希望它知道在使用它的页面中设置的一些变量 文件:template.jadeTemplates 如何在jade模板之间传递变量,templates,variables,pug,Templates,Variables,Pug,我使用一个模板作为基础,并希望它知道在使用它的页面中设置的一些变量 文件:template.jade vars = vars || {some:"variables"} !!! 5 head title vars.some doctype 5 html(lang="en") head //- setting the page title to be dynamic block vars - var defaultTitle = "My Project"
vars = vars || {some:"variables"}
!!! 5
head
title vars.some
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
vars = {some:"things"} //- this does not get used from within template.jade
extends template
extends base
//- custom page title
block append vars
pageTitle = " - The Page"
我希望编译后的page.jade有一个标题“things”您可以使用块:
template.jade:
!!! 5
head
block title
title variables
!!!
html
block vars
head
title #{pageTitle} - default www title
body
page.jade:
extends template
block title
title things
否则,您必须在脚本中定义变量(例如express)。
据我所知,变量只能通过include传递,而不能向上传递到布局(在您的例子中是template.jade)。我认为块对我不起作用,因为我需要在多个位置使用变量
// 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我找到了解决方案
带变量的pass块
template.jade:
!!! 5
head
block title
title variables
!!!
html
block vars
head
title #{pageTitle} - default www title
body
杰德
vars = {some:"things"} //- this does not get used from within template.jade
extends template
extends template
block vars
- var pageTitle = 'Home'
extends base
//- custom page title
block append vars
pageTitle = " - The Page"
这是一个很好的添加标题的方法:
“我的项目-页面”
或者就是这样:
“我的项目”
模板:template.jade
vars = vars || {some:"variables"}
!!! 5
head
title vars.some
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
vars = {some:"things"} //- this does not get used from within template.jade
extends template
extends base
//- custom page title
block append vars
pageTitle = " - The Page"
使用如何
这个限制真的很糟糕。这些变量需要转到扩展模板。当您包含扩展布局的模板时,这似乎不起作用。完美地解决了我的问题。非常干净的解决方案。谢谢