2011-12-23 8 views
2
と文

[注:。This questionは非常に似ていますが、全く同じではない]私はアンダースコアテンプレートとif文をやろうとしている場合underscore.js

<% if (_id) { %><%=_id %><% } %> 

<% if (_id) { _id } %> 

<% if (_id) { <%= _id %> } %> 

や他の組み合わせの束を、私は常にエラー

ReferenceError: _id is not defined

任意の提案を得る:私が試してみましたか?

答えて

6

あなたのコードは何もわかりませんが、_idは明らかに識別子です。しかし、問題は_idが定義されていないことです。

提案については、定義したり、定義されているものを使用することをお勧めします。あなたにゼロの文脈でより良い提案を与えるのは難しいです。

EDIT:おそらくif(typeof _id != 'undefined')が必要です。

少し古い
+0

ここにありますコンテキスト。オブジェクトのプロパティを渡してテンプレートをレンダリングします。時には '_id'がそのオブジェクトのプロパティの1つでないことが判明しています。その場合は、何も表示しないだけですが、エラーは表示しません。 – Randomblue

+0

私は自分の答えを編集しました。 –

+0

それは働いて、ありがとう!なぜここに 'typeof'が必要なのですか?不要です。奇妙な... – Randomblue

0

が、これは、私は同様の問題解決方法です:あなたのモデル内

を:

var Model = Backbone.Model.extend({ 

    defaults: { 
     field1: null 
    } 

}); 

、あなたが行うことができますあなたのテンプレートで:

<% if (field1) { %> 
    ... 
<% } else { %> 
    ... 
<% } %>