假设我有一个 Backbone.js 模型:
// I declare it...
var Foo = Backbone.Model.extend({
url: '/resources/foo',
defaults: {
bar: true
}
});
// Construct it...
var foo = new Foo({});
// Locally set a value,
foo.set('floozy', true);
// And then fetch more data on it from the server.
foo.fetch();
现在说服务器返回一个对象:
{
id: 1
bar: false,
floozy: false
}
如果我在获取成功时检查模型内容,
foo.fetch({ success: function(){
console.log(this.toJSON());
}});
并在 firebug 中检查模型,对象如下所示:
{
0: {
id: 1,
foo: false,
floozy: false,
},
foo: true,
floozy: true
}
换句话说,它不是更新我现有的值,而是将整个响应包装在一个未命名的对象 ( 0
) 中。我还没有弄清楚为什么会发生这种情况,我很困惑。为什么会发生这种情况/我做错了什么?