我想讓我的jsRender模板可選地包含一個「options」屬性,以便在不包含屬性時提供可選的回退功能;如果包含「options」屬性,則特別渲染一個元素;如果不包含「options」屬性,則顯示另一個元素。一切正常,如果通過的模型包含有問題的財產,但即使{{if typeof ~options.someOption !== 'undefined'}}
給我Error: Cannot read property 'someOption' of undefined.
jsRender可選模型屬性
有沒有人處理過這個?如果是這樣,你如何處理通過的模型的屬性不存在?
編輯:這個問題真的是關於如何處理模型的缺失屬性。給定一個具有屬性A和B的模型,如果屬性B在模型中缺失但在模板中被引用,那麼如何防止錯誤消息並優雅地處理它的缺失?
這是更符合你想要做的,[鏈接] http://borismoore.github.com/jsviews/demos/step-by-step/01_rendering-and-linking.html) – 2013-03-20 14:23:08
雖然這很酷,它更側重於jsViews和數據綁定。我的問題是渲染的核心,以及如何選擇/渲染模板。 – 2013-03-20 23:38:59
您可以確保您創建了一個模型,您的模型從中繼承而來。在Backbone中,您將創建一個模型並將其設置爲默認值,然後基於此模型創建的每個新模型都保證具有所有屬性,即使您可能不提供它們。 var Model = Backbone.Model.extend({defaults:{「prop1」:「value1」,「prop2」:「value2」});然後創建一個新模型。 var model = new Model({「prop1」:「new value」});模型現在有prop1和prop2。 – Kalpers 2013-03-21 01:07:34