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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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
Backbone.js 重置主干。主干中的集合。模型_Backbone.js - Fatal编程技术网

Backbone.js 重置主干。主干中的集合。模型

Backbone.js 重置主干。主干中的集合。模型,backbone.js,Backbone.js,我有一个模型,其中包含一个带有一些Backbone.Collections的默认对象。我不知道这是否是最优雅的解决方案,但它现在适合我的需要。但是,创建模型的新实例时,不会重置集合,而是添加新模型。是否应自动重置默认值?我现在必须在初始化函数中设置myColls var MyModel = Backbone.Model.extend({ defaults: { 'someProp': '', 'myColls': { 'firs

我有一个模型,其中包含一个带有一些Backbone.Collections的默认对象。我不知道这是否是最优雅的解决方案,但它现在适合我的需要。但是,创建模型的新实例时,不会重置集合,而是添加新模型。是否应自动重置默认值?我现在必须在初始化函数中设置myColls

var MyModel = Backbone.Model.extend({

    defaults: {
        'someProp': '',
         'myColls': {
            'first': new Backbone.Collection(),
            'second': new Backbone.Collection(),
            'third': new Backbone.Collection()
         }
    },

    initialize: function() {
        // This does reset myColls:
        this.set('myColls', {
            'first': new Backbone.Collection(),
            'second': new Backbone.Collection(),
            'third': new Backbone.Collection()
        });

    }
}

正如在关于

记住,在JavaScript中,对象是通过引用传递的,所以如果 如果包含一个对象作为默认值,它将在所有用户之间共享 实例。相反,将默认值定义为函数

var MyModel = Backbone.Model.extend({

    defaults: {
        'someProp': '',
         'myColls': {
            'first': new Backbone.Collection(),
            'second': new Backbone.Collection(),
            'third': new Backbone.Collection()
         }
    },

    initialize: function() {
        // This does reset myColls:
        this.set('myColls', {
            'first': new Backbone.Collection(),
            'second': new Backbone.Collection(),
            'third': new Backbone.Collection()
        });

    }
}
所以