1

たとえば、hotel_id = 1 の Json レコード内で検索したいバックボーンにアプリがあります。

私はこのモードで行いました:

 var Room = Backbone.Model.extend();
        var Rooms = Backbone.Collection.extend({
            model:Room,
            url : "includes/rooms.json"
        });
var RoomView = Backbone.View.extend({ 
            template: _.template($("#hotel-list-template").html()),
            initialize: function(){ 
                this.render();
            },
            render: function(){
                this.bindRoomToHotel();
                var element = this.$el;
                element.html('');

               // $(this.el).html(this.template({hotels: this.collection.models}));
            },
            bindRoomToHotel: function() {
                allRooms = new Rooms();
                allRooms.fetch();
                rooms = allRooms.where({'hotel_id' : 1});
                console.log(rooms);

            } 
        });

多くの部分をカットしましたが、問題は bindRoomHotel の内部にあり、where 関数が空を返すようにすると発生します。

これは私のjsonです:

[
  {
    "id" : "r1",
    "hotel_id" : "1",
    "name" : "Singola"
  },
  {
    "id" : "r1_1",
    "hotel_id" : "1",
    "name" : "Doppia"
  },
  {
    "id" : "r2",
    "hotel_id" : "2",
    "name" : "Singola"
  },
  {
    "id" : "r2_1",
    "hotel_id" : "2",
    "name" : "Tripla"
  }
]

hotel_id=1 のレコードを見つけるには?

4

1 に答える 1

3

属性名を引用符で囲む必要がないことを確認してください。おそらくこれを試してください

rooms = allRooms.where({ hotel_id : 1 });

編集:提供したコードでこれらのオブジェクトを初期化している場所がわかりません。このようなものが表示されると思います。

var Room = Backbone.Model.extend();

var Rooms = Backbone.Collection.extend({
    model: Room,
    url: "includes/rooms.json"
});

var RoomView = Backbone.View.extend({
    template: _.template($("#hotel-list-template").html()),
    initialize: function () {
        this.render();
    },
    render: function () {
         this.$el.html(_.template(this.template, this.collection.where({ hotel_id: 1 }));
    }
});

var roomsCollection = new Rooms();
var roomView;

roomsCollection.fetch({
    success: function ( rooms ) {
        roomView = new RoomView( collection: rooms );
    }
});
于 2013-07-01T20:38:17.627 に答える