Javascript events 在属性哈希中设置id时,不会将其复制为主干中的直接属性
在主干文档中,它表示: 但它对我的代码不起作用:Javascript events 在属性哈希中设置id时,不会将其复制为主干中的直接属性,javascript-events,backbone.js,Javascript Events,Backbone.js,在主干文档中,它表示: 但它对我的代码不起作用: 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
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
以下是房间模型的一些代码片段:
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)});
}
});
我甚至可以用一个简单的node命令(版本0.9.2,下划线1.3.3)重现这个问题:
所以我怀疑我的node env可能有问题?非常奇怪,在我的模型上尝试同样的方法效果很好。你能粘贴房间模型相关的代码吗?也许你的model.idAttribute不是“id”?这一个对我有用,试试:
var Room=Backbone.model.extend({defaults:{dealInterval:1},initialize:function(){This.set({seats:});})代码>我可以在一个简单的环境中重现这个问题,请查看原始问题中的更新。谢谢
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 } }
>