Backbone.Collection.fetch():
fetch: function(options) {
options = options ? _.clone(options) : {};
if (options.parse === void 0) options.parse = true;
var success = options.success;
options.success = function(collection, resp, options) {
var method = options.update ? 'update' : 'reset';
collection[method](resp, options);
if (success) success(collection, resp, options);
};
return this.sync('read', this, options);
},
つまり、ここでの処理は、渡された関数がに割り当てられるということvar succees
です。
collection[method](resp, options);
が呼び出され、あなたの場合、メソッドは'reset'
です。
collection.reset
すべてのモデルを調べて追加し、途中ですべてのイベントを発生させる必要があります。何が起こっているのか正確にはわかりませんが、、、、などを通過しますcollection.reset
...私はそれをすべてフォローしていませんでした。collection.add
model.add
問題が正確に何であるかわかりません、それについては申し訳ありません。私は少なくともあなたがいくつかのことを試すのを手伝ってくれることを願っています。そうすれば私たちはそれを理解できるかもしれません。この行if (success) success(collection, resp, options)
は、succes関数の呼び出しです。あなたがやろうとするかもしれないことは、あなたの成功コールバックに渡された引数を受け入れさせて、それらのいくつかの慰めをすることです:
success: function(collection, resp, options) {
console.log(collection); // this might do the trick.
// if not, you could try the following
collection.on("reset", function(c, options) {
console.log(c); // see what that gives ya.
});
}
もう1つは、collection.fetchが追加オプションを使用するソースまたはドキュメントのどこにも見つからなかったことです。見逃してしまった場合は、見たいと思いますのでお知らせください。
頑張って、あなたが見つけたものを私に知らせてください。デバッガーのステップスルーも実行する価値があるかもしれません。
たわごと、それはまた、コンソールが持ってはいけないときにコレクションオブジェクトの最新バージョンを私にしばしば見せてくれたことにも私を驚かせます。
代わりに、コレクションの長さを慰めてみてください。
var len = $this.Messages.length;
console.log(len);
//...
// or in the success callback
var len = collection.length;
console.log(len);