重置Backbone.Model Backbone.Collections(Reset Backbo

2019-09-26 14:57发布

我持有一些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()
        });

    }
}

Answer 1:

作为骨干文档中说Model.defaults

请记住,在JavaScript中,对象是按引用传递的,所以如果你有一个对象作为默认值,它会被所有实例共享。 取而代之的是,默认的功能。

所以,

var MyModel = Backbone.Model.extend({
    defaults: function() {
        return {
            'someProp': '',
            'myColls': {
                'first': new Backbone.Collection(),
                'second': new Backbone.Collection(),
                'third': new Backbone.Collection()
             }
        };
    },
    initialize: function() {
    }
});


文章来源: Reset Backbone.Collections in Backbone.Model
标签: backbone.js