维护 Backbone 集合引用

Maintain Backbone Collection References

我已经 运行 解决了陈旧的集合引用问题。所以,我有以下模型:

ProcessModel = Backbone.Model.extend({
    initialize: function() {
        this.set('steps', new StepsCollection());
    }
    ...
});

从服务器获取 ProcessModel 时,也会返回 StepsCollection。以前,我有以下解析方法:

parse: function(response) {
    ...
    response.steps = new StepsCollection(response.steps, {parse: true});
}

...但是,这是在创建一个全新的集合对象,而不是重复使用现有的集合对象。这导致绑定到先前 "steps" 集合的视图变得陈旧。

我试过以下方法:

response.steps = this.get('steps').reset(response.steps);

但是我在 Object.Marionette.bindEntityEvents 中得到了很长的堆栈跟踪。我做错了什么?

试试这个。这将创建单个集合,然后我们将使用解析方法中的新数据集重置相同的集合实例。

    ProcessModel = Backbone.Model.extend({
        initialize: function() {
            this.myCollection = new StepsCollection();
            this.set('steps', this.myCollection);
            ...
        },
        parse: function(response) {

            this.myCollection.reset(response.steps);
            this.set('steps', this.myCollection);
            ...
        }

   });