0

所以这是我的问题:

我在我的快速代码中的某处有这个渲染函数:

    function renderWithData(arrayOfEvents, res) {
    res.render("index", {
        locals: {
            pageTitle: "Wochenplaner",
            events: arrayOfEvents
        }
    });
}

它向 index.jade 传递一个名为events的变量。现在我想在jade中解析这个变量,例如:

- if(locals.events[0] == true) alert("Bla");

但是 express 告诉我locals.events是未定义的。我如何正确地将变量传递给那种“rendering-javascript”?

4

1 回答 1

0

好吧,我是菜鸟!

在我的实现中,这个 if-construct 是这样循环的:

for(var i = 0; i < number; i++) {
if(locals.events[i].time == 7) alert("bla");
}

我没有考虑的是, locals.events[i].time 可能是“未定义的”,因为该数组中的索引处根本没有日期。所以我通过添加以下内容来解决这个问题:

if(typeof locals.events[i].time !== "undefined" && locals.events[i].time == 7) alert("bla");

从节点代码访问js变量并将其传递给jade的正确方法是通过对象访问它。如果这是我的对象:

locals: {
        pageTitle: "Wochenplaner",
        events: arrayOfEvents
    }

然后我会像这样在 Jade 中访问它:

locals.events[index].property

很抱歉浪费你的时间:)

于 2013-01-03T15:12:14.763 回答