2013-01-03 35 views
0

所以这是我的问题:将数组传递给玉文件

我有这个地方呈现功能在我的快件代码:

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

它传递index.jade一个名为事件变量。 现在我想解析这个变量的玉石里面,比如像这样:

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

但表达的是告诉我,locals.events是不确定的。 我如何正确地将一个变量传递给那种“渲染-javascript”?

+0

你有没有尝试过' - 如果(事件[ 0] ...''? – hayavuk

+0

是的,这显然不起作用,因为事件是本地对象的属性,所以它告诉我“事件没有定义” 我也试过这个:if(locals.events [i]。时间=== i + 7 && locals.events [i] .day === 0) 也没有工作,然后它告诉我临时工时间和日期没有定义。但是肯定有事件中的数据,因为当我在html文件中打印#{locals.events [0] .day}时,就有需要的数据! –

+0

啊,我现在看到了。那么,首先,我不认为你需要“本地人”的对象,但这是个人品味的问题。其次,它可能是'arrayOfEvents'没有被传递,或者是'undefined'。 – hayavuk

回答

0

好吧,我是小菜一碟!

我在执行该if-构建物通过cyceld这样的:

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

我不认为是什么,那locals.events [I]。时间可能是“不确定”因为根本WASN在该阵列中的该指数的日期。 所以我固定这通过添加以下:

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

从节点代码访问和传递一个JS-变量玉正确的方法是通过对象来访问它。如果这是我的目标:

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

那么我会访问它在玉是这样的:

locals.events[index].property 

对不起,浪费你的时间:)