0

これは私の問題です:

私はエクスプレスコードのどこかにこのレンダリング関数を持っています:

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

index.jade にeventsという変数を渡します。ここで、たとえば次のように、この変数を jade 内で解析したいと思います。

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

しかし、エクスプレスは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");

node-code から jade に js 変数にアクセスして渡す正しい方法は、オブジェクトを介してアクセスすることです。これが私のオブジェクトである場合:

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

次に、次のように Jade でアクセスします。

locals.events[index].property

お時間を無駄にして申し訳ありません:)

于 2013-01-03T15:12:14.763 に答える