我刚刚开始使用jade和node。我将一个对象从节点传递给jade模板(parent.jade
)并将相同的jade文件(parent.jade
)包含到另一个文件(child.jade
)。它描述如下:
节点部分:
res.render('parent.jade', {data: mydata});
然后在parent.jade
我正确收到数据:
doctype html
html
head
title parent
script(type="text/javascript" src="/resources/file_javascript.js").
var data_from_node = !{JSON.stringify(data)}; //getting the data in javascript file
body(data-title="parent")
div#header(class="wrap")
include header.pug
ul#list(class="nav nav-tabs")
footer(id="footer" class="footer")
include footer.pug
在child.pug
我包含父文件但无法获取数据对象。我已经尝试了一切,但没有任何工作在这里,我按以下方式包括它:
doctype html
html
head
title child.pug
body(data-title="child")
div(class="wrap")
include parent.pug //here I am including parent.pug getting the content right
div#mydiv(class="tab-content")
include table.pug
footer(id="footer" class="footer")
include footer.pug
script(type='text/javascript').
var data = !{JSON.stringify(data)}; //getting null here
script(type = "text/javascript", src = "/resources/file_javascript.js")
有没有办法获得"数据对象"来自child.pug
的{{1}},因为我在parent.pug
中变为空?
答案 0 :(得分:0)
不幸的是没有。当您在Node.js中调用res.render
时,只会在呈现该模板时记住传递给该模板的上下文变量。如果您想让child.pug
有权访问该变量,您也必须将其主动传递给该模板(当您致电res.render("child.pug", {...})
时)。