0

バックボーン ドキュメントには次のように書かれています:属性ハッシュに id を設定すると、直接プロパティとしてモデルにコピーされます

しかし、私のコードでは機能しません:

var room = new Room({id: 1});
test.equals(room.id, 1);// expect room.id to be 1, but it's undefined.

つまり、コレクションからこのモデルを取得できません。

rooms.add(room);
test.equals(rooms.get(1), room); // expect equal, but not because rooms.get(1) returns undefined

Room モデルのコード スニペットを次に示します。

var Room = Backbone.Model.extend({
        defaults: {
            dealInterval: 1
        },                 
        initialize: function(){   
            var seats = Seats.prepareSeats();   
            this.set({seats: seats, roomState: RoomState.WAITING, cards: Cards.decks(2)});
        }

    });

簡単なノード コマンド (バージョン 0.9.2、アンダースコア 1.3.3) でこの問題を再現することもできました。

username$ node
> var Backbone = require('backbone');
undefined
> var room = new Backbone.Model({id: 1});
undefined
> room.id
undefined // expect to be 1
> room
{ attributes: { id: 1 },
  _escapedAttributes: {},
  cid: 'c0',
  changed: {},
  _silent: {},
  _pending: {},
  _previousAttributes: { id: 1 } }
>

それで、ノード環境に何か問題があるのではないかと思いますか?

4

0 に答える 0