Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何初始化没有默认值的BackboneJS模型?_Javascript_Backbone.js - Fatal编程技术网

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

Javascript 如何初始化没有默认值的BackboneJS模型?,javascript,backbone.js,Javascript,Backbone.js,我发现自己做了很多这样的事情,例如: var Item = Backbone.Model.extend({ }); var sampleItemCode = 12345; var item = new Item({itemCode: sampleItemCode}); 我想设置的任何属性都没有默认值,但我想让它成为自己的模型。有一个空的主干看起来很奇怪。像这样的模型,所以我想知道是否有一个好的方法来初始化它 最好是这样 var Item = Backbone.Model.extend({

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

var Item = Backbone.Model.extend({

});

var sampleItemCode = 12345;

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

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

最好是这样

var Item = Backbone.Model.extend({    
    defaults: {itemCode: -1}
});
collection.push(new Item({name: "Item 56", price: 1500}));
itemCode是项目的明确需求。所以默认它。因此,当您在
Item
模型中编写一些函数时,您将始终拥有itemCode,您可以对照它进行检查。当您从服务器获取数据进行收集时,若该项并没有itemCode,或者当您初始化该项时,若您未能设置itemCode,则该项将始终具有默认值

例如,如果要将新项目添加到集合中。你可以这样做

var Item = Backbone.Model.extend({    
    defaults: {itemCode: -1}
});
collection.push(new Item({name: "Item 56", price: 1500}));
在这里,您不需要每次传递itemCode:-1。默认情况下,当您在服务器上保存时,您可以检查ITEMCODE,如果它是-1,可以将其视为新项目Addio.


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

您稍后是否正在使用/检查类
项?为什么不干脆
newbackbone.Model({itemCode:12345})?我想为将来可能需要添加到模型中的代码保留结构