如何初始化没有默认值的BackboneJS模型?

时间:2013-10-07 15:59:33

标签: javascript backbone.js

我发现自己做了很多这样的事情,例如:

var Item = Backbone.Model.extend({

});

var sampleItemCode = 12345;

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

我没有要设置的任何属性的默认值,但我想让它成为自己的模型。有一个像这样的空Backbone.Model看起来很奇怪,所以我想知道是否有一个很好的方法来初始化它?

1 个答案:

答案 0 :(得分: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,您可以将其视为新项目添加。

但是像你一样拥有它并没有错。在扩展应用程序时,您肯定会为该模型添加功能。