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
Backbone.js 维护主干集合引用_Backbone.js_Collections_Marionette - Fatal编程技术网

Backbone.js 维护主干集合引用

Backbone.js 维护主干集合引用,backbone.js,collections,marionette,Backbone.js,Collections,Marionette,我一直遇到过时集合引用的问题。因此,我有以下模型: ProcessModel = Backbone.Model.extend({ initialize: function() { this.set('steps', new StepsCollection()); } ... }); 从服务器获取ProcessModel时,也会返回StepsCollection。以前,我有以下解析方法: parse: function(response) { ..

我一直遇到过时集合引用的问题。因此,我有以下模型:

ProcessModel = Backbone.Model.extend({
    initialize: function() {
        this.set('steps', new StepsCollection());
    }
    ...
});
从服务器获取ProcessModel时,也会返回StepsCollection。以前,我有以下解析方法:

parse: function(response) {
    ...
    response.steps = new StepsCollection(response.steps, {parse: true});
}
…然而,这是在创建一个全新的集合对象,而不是重用现有的集合对象。这导致绑定到“上一步”集合的视图过时

我尝试了以下方法:

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

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

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

    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);
            ...
        }

   });

我忘了我已经发布了这个:-这基本上是我结束做的事情,尽管在初始化中有一些警卫。。。和解析。。。处理模型在客户端创建的情况,以及模型直接来自服务器的情况。哦,我得到的奇怪错误是由分析步骤模型中的子元素引起的