問題のコレクションはたくさんのFriendsをつかんで、reset
を使ってすべての新しいFriendsを保存します。私が持っている問題は、コレクションに1人の友人しか追加しないということです。私のbackbone.jsコレクションのリセットが1つのモデルを追加するのはなぜですか
cModels
でconsole.log
を実行しましたが、アレイ内に300個以上のオブジェクトが表示されていました。そのため、リセットだけが1を追加する理由は何ですか?
は、ここに私のコレクションです:
FriendsCollection = Backbone.Collection.extend({
model: UserModel,
getFriends: function() {
$.post(baseUrl + dataFriendsUrl, $.proxy(function(data) {
var friends = $.parseJSON(data);
var cModels = [];
for(var key in friends.data) {
var user = new UserModel();
user.set({
fbid: friends.data[key].id,
username: friends.data[key].name
});
cModels.push(user);
}
this.reset(cModels);
console.log(this);
}, this));
}
});
とモデルは、開発ツールでそれらを検査した後、罰金に見えます。
バックボーンのcollection.resetはコレクションをリセットして、それに渡されたものにcollection.addを呼び出します。 Addは、問題が発生したときにエラーを投げることについてはかなり良いので、何も見ていないのには驚いています。追加を行う実際の行は 'splice.apply(this.models、[index、0] .concat(models));'です。あなたのモデルの完全なセットがそれをその点に作っているかどうかを見るために、直前に 'debugger'または' console.log(this.models、models、index) '行を追加してみてください。 – machineghost