2013-10-07 51 views
0

我發現自己做了很多的這些,例如:如何初始化沒有默認值的BackboneJS模型?

var Item = Backbone.Model.extend({ 

}); 

var sampleItemCode = 12345; 

var item = new Item({itemCode: sampleItemCode}); 

我沒有默認值任何我想要設置的屬性,但我想讓它自己的模式。它看起來很奇怪,有一個空的Backbone.Model,所以我想知道是否有一個好的方法來初始化它?

+0

您是在稍後使用/檢查「Item」類嗎?爲什麼不只是'new Backbone.Model({itemCode:12345});'? –

+0

我想留下可能需要添加到模型的未來代碼的結構 – justclaire

回答

1

更好的是這樣的。

var Item = Backbone.Model.extend({  
    defaults: {itemCode: -1} 
}); 

itemCode是明確需要的項目。所以默認它。所以當你在Item模型裏面寫一些函數時,你總是會有itemCode,你可以檢查它。並且,當您從服務器獲取數據以進行收集時,如果該項目沒有itemCode,或者當您初始化Item時,以及您未能設置itemCode,它將始終將其設置爲默認值。

例如,如果您將新項目添加到您的收藏。你可以這樣做。

collection.push(new Item({name: "Item 56", price: 1500})); 

這裏你不需要通過itemCode:-1每次上。它會被默認,當你保存時,在服務器上,你可以檢查itemCode,如果它是-1,你可以把它當作新的項目添加。

但是沒有什麼不對,像你這樣做。當你擴展你的應用程序時,你一定會爲該模型添加功能。