Ta kolekcja zbiera grupę znajomych, a następnie używa reset
, aby zapisać wszystkich nowych znajomych. Problemem, który mam, jest to, że dodaje tylko 1 znajomego do kolekcji.Dlaczego resetowanie kolekcji backbone.js powoduje tylko dodanie 1 modelu
Zrobiłem console.log
na cModels
i pokazywałem ponad 300 obiektów w Tablicy, więc wiem, że istnieje nie tylko 1. Jakiś powód, dla którego resetowałby tylko dodanie 1?
Oto moja kolekcja:
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));
}
});
a modele wyglądają w porządku, po sprawdzeniu ich z narzędzi programistycznych.
Kolekcja kręgosłupa. resetuje tylko kolekcję, a następnie wywołuje collection.add na wszystkim, co zostało do niej przekazane. Dodaj jest całkiem niezły w wyrzucaniu błędów, gdy masz problem, więc jestem zaskoczony, że go nie widzisz. Rzeczywista linia, która dokonuje dodania, to 'splice.apply (this.models, [index, 0] .concat (models));'. Możesz spróbować dodać wiersz 'debugger' lub' console.log (this.models, models, index) 'tuż przed nim, aby zobaczyć, czy twój pełny zestaw modeli robi to do tego punktu. – machineghost