Backbone.js 在主干中使用延迟的嵌套获取
Backbone.js 在主干中使用延迟的嵌套获取,backbone.js,fetch,jquery-deferred,backbone.js-collections,Backbone.js,Fetch,Jquery Deferred,Backbone.js Collections,我试图运行多个回迁来填充作为模型属性的集合。 我收到了我想要获取的所有信息,但一旦我的功能完成,每个组都有相同的成员(最后获取的成员)。 我在代码中放置了两个console.log语句,以确定信息在最后一次出现错误时的正确位置。然而,我不知道我能做些什么来存储写的信息。 var dfr = $.Deferred(); var that = this; that.get('groups').fetch({ data: $.param({ match_id:
我试图运行多个回迁来填充作为模型属性的集合。 我收到了我想要获取的所有信息,但一旦我的功能完成,每个组都有相同的成员(最后获取的成员)。
我在代码中放置了两个console.log语句,以确定信息在最后一次出现错误时的正确位置。然而,我不知道我能做些什么来存储写的信息。
var dfr = $.Deferred();
var that = this;
that.get('groups').fetch({
data: $.param({ match_id: that.get('match_id')}),
success: function(response) {
response.each(function(obj, i) {
$deferreds[i] = $.Deferred();
obj.loadMembers(loadRatings).done(function(){
$deferreds[i].resolve();
console.log(obj.get("group_members")) // HERE ALL GROUPS ARE RIGHT
});
});
$.when.apply(null,$deferreds).then(function(){
console.log(that.get("groups")) // HERE ALL GROUPS HAVE THE SAME MEMBERS
dfr.resolve();
});
},
error: function (model, response) {
dfr.fail("could not load users");
}
})
return dfr;
您不应该将
obj
值分配给实际集合吗?您正在循环响应,在响应中有多个对象,在每次迭代中,每个对象执行一些操作,下一个对象再次执行相同的操作,因此当您到达上一个对象时,它覆盖了以前的对象所做的任何事情?如何将模型添加到从ajax调用接收到的集合中?