モデルのプロパティであるコレクションを設定するために、複数のフェッチを実行しようとしています。取得したいすべての情報を受け取りますが、関数が完了するとすぐに、すべてのグループに同じメンバー (最後にフェッチされたメンバー) が含まれます。
コードに 2 つの 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;