无法将服务器对象从一个jade文件传递到另一个jade文件

时间:2017-08-01 15:27:22

标签: javascript jquery node.js pug

我刚刚开始使用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中变为空?

1 个答案:

答案 0 :(得分:0)

不幸的是没有。当您在Node.js中调用res.render时,只会在呈现该模板时记住传递给该模板的上下文变量。如果您想让child.pug有权访问该变量,您也必须将其主动传递给该模板(当您致电res.render("child.pug", {...})时)。