2011-12-23 55 views
2
陳述

[注:This question非常相似,但並不完全相同]如果與underscore.js

我試圖做if陳述以下劃線的模板。我曾嘗試:

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

<% if (_id) { _id } %> 

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

和一堆其他的組合,但我總是得到錯誤

ReferenceError: _id is not defined

有什麼建議?

回答

6

我不知道你的代碼是什麼,但_id顯然是一個標識符。但問題是,您沒有定義_id

至於建議,我可能會建議您定義它或使用定義的。在零背景下很難給你一個更好的建議。您可能需要if(typeof _id != 'undefined')代替。

+0

這裏是上下文。我通過傳遞一個對象屬性來渲染模板。事實證明,有時'_id'不是該對象的屬性之一。在那種情況下,我只想顯示任何內容,但不會出錯。 – Randomblue 2011-12-23 23:08:28

+0

我編輯了我的答案。 – 2011-12-23 23:24:03

+0

它的工作,謝謝!爲什麼我需要'typeof'在這裏?似乎沒有必要。奇怪... – Randomblue 2011-12-23 23:27:55

0

有點老了,但是這是我如何解決類似的問題:

模型裏面:

var Model = Backbone.Model.extend({ 

    defaults: { 
     field1: null 
    } 

}); 

然後在你的模板,你可以這樣做:

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