0

アンダースコア テンプレートに問題があります。

アプリケーションの起動時に現在のユーザーをフェッチします。そのため、Cookie から取得した ID を渡してインスタンスを作成します。このモデルをビューに渡し、そこにフェッチします (どこでこれを行うかは関係ありません)。非同期です)。

私はrequire.jsプラグイン(var msg)によってi18nをいくつか持っているので、関数を使用しますserializeData

if (this.model.attributes.name) {
    msg.model = this.model.toJSON();
}

return msg;

私のアンダースコアテンプレートでは、可能であればユーザー名を表示したいので、そうします

<% var model = model; if (model) { %>
    <%= model.name.givenName %>
<% } %>

を呼び出さないと、 がスローvar model = modelされるため、その存在を確認することさえできないことがわかりました。if (model)undefined error

どうすればうまくいくかわからないので、これについては少し気分が悪いです。たぶん、マイクロテンプレートの代わりにハンドルバーや口ひげを使用する必要があります. この厄介な問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

このようにチェックする必要があります

if (typeof model != "undefined" && model.name != undefined && model.name.givenName != undefined ) {
    ...
}

それはJavascriptの奇妙な文法と関係があります。

于 2013-02-12T13:36:56.600 に答える