バックボーンに、次のような外部 JSON を持つアプリがあります。
[
{
"id" : "r1",
"hotel_id" : "1",
"name" : "Singola",
"level" : "1"
},
{
"id" : "r1_1",
"hotel_id" : "1",
"name" : "Doppia",
"level" : "2"
},
{
"id" : "r1_3",
"hotel_id" : "1",
"name" : "Doppia Uso singol",
"level" : "1"
},
{
"id" : "r2",
"hotel_id" : "2",
"name" : "Singola",
"level" : "1"
},
{
"id" : "r2_1",
"hotel_id" : "2",
"name" : "Tripla",
"level" : "1"
}
]
それを解析してフェッチし、groupBy の後で hotel_id を作成し、レベルでグループ化された配列を作成します。
これを試してみましたが、空の配列があります。
var Room = Backbone.Model.extend();
var Rooms = Backbone.Collection.extend({
model:Room,
url : "includes/rooms.json"
});
var RoomView = Backbone.View.extend({
initialize: function(){
allRooms = new Rooms();
allRooms.on("sync", this.render, this)
allRooms.fetch();
},
render: function(){
var rooms = _.groupBy(allRooms.models,'hotel_id');
for (var hotelid in rooms)
rooms[hotelid] = _.groupBy(rooms[hotelid], "level");
}
});
トレースすると、部屋の空の配列が返されます