2013-01-03 73 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 

對不起,浪費你的時間:)