2013-10-07 55 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,你可以把它当作新的项目添加。

但是没有什么不对,像你这样做。当你扩展你的应用程序时,你一定会为该模型添加功能。