サーバーからオブジェクトのリストをフェッチしようとしていますが、コレクションは最初のレコードを受け入れ、残りを無視します。
サーバーからの応答のタイプはapplication/json
[{"id":1,"name":"A"},
{"id":2,"name":"B"},
{"id":3,"name":"C"}]
クライアント側で、
var collection = new Backbone.Collection;
collection.url = 'url_to_the_resource';
collection.fetch();
console.log( collection.toJSON());
出力は
[{"id":1,"name":"A"}]
編集
コレクションの準備ができたら、つまり次のように非同期呼び出しが完了した後に log を呼び出します。
collection.fetch().done( function() {
console.log( collection.toJSON() );
});
それでも1つのレコードを取得しています。また、backbone.js のソース コードを確認したところ、次の行が見つかりました。682
// If a duplicate is found, prevent it from being added and
// optionally merge it into the existing model.
if (existing = this.get(model)) {
その行の直後にログを追加すると、バックボーンがすべてのモデルをマージすることがわかりました。なぜですか?