0

url 属性からコレクションを取得しようとしていますが、問題が発生しています。fetch() は正常に返されたようですが、get() を使用してコレクション内のモデルにアクセスできません。モジュールの開発に bbb と requireJS を使用しています

var rooms = new Rooms.Collection(); // calls the rooms module
  rooms.fetch({success: function(){
      console.log(rooms.get(1)); // should output the first model
});

部屋モジュールのコレクションコードは次のとおりです。

Rooms.Collection = Backbone.Collection.extend({
    model: Rooms.Model,
    url: 'http://localhost:8888/projects/meeting-room/app/data/rooms.json'
});

部屋を出力すると、すべてがうまくいきます。しかし、特定のモデルを試してみると、エラーが発生します。

[{
    "id": 12345,
    "name": "Ford",
    "occupied": false
},
{
    "id": 23458,
    "name": "Chevy",
    "occupied": false
},
{
    "id": 83565,
    "name": "Honda",
    "occupied": false
}]
4

1 に答える 1

2

このcollection.getメソッドは、ID でモデルを検索します。位置でモデルを検索する場合は、collection.at代わりに使用します。

また、javascript の配列インデックスは に0基づいていることに注意してください。したがって、最初のモデルは次のように見つけることができます。

var model = collection.at(0); 

便宜上、バックボーン コレクションは、アンダースコアの配列およびコレクション メソッドの一部も実装しfirstます。つまり、次の方法でも最初のモデルを見つけることができます。

var model = collection.first();
于 2013-01-29T16:27:35.930 に答える