我正在尝试 Backbone 并遇到了一些问题。
如果我将 Collection.create 与模型数组一起使用,那么发布到服务器的 JSON 似乎并不容易解析。
例子:
var Person = Backbone.Model.extend({
initialize: function() {
this.on( 'all', function(e)
{ console.log( "Person model all " + this.get("name") + ", event: " + e ); }
);
}
});
var People = Backbone.Collection.extend({
initialize: function() {
this.on( 'all', function(e) { console.log( "People collection event: " + e ); } );
},
url: "/models/",
model: Person
});
var people = new People();
people.create( [ { "name":"joe", "age":24 }, { "name":"dan", "age":42 } ] );
然后我的服务器收到以下 JSON:
{"0":{"name":"joe","age":24},"1":{"name":"dan","age":42}}
这是什么以及为什么它不是一个简单的数组,例如:
[{"name":"joe","age":24},{"name":"dan","age":42}]
事实上,它很难解析,因为更糟糕的是,如果你执行 Model.save() 那么你会得到一个没有这些 ID 值的简单对象(更有效)。
我能够解析此收藏帖子的唯一方法是执行以下操作:
for( var n in payloadobj )
{
var person = new Object();
person.id = parseInt(n, 10);
person.name = payloadobj[n].name;
person.age = payloadobj[n].age;
}
有谁知道这是为什么,我是否遗漏了一些东西,我是要覆盖一些东西以使其更加一致还是应该避免 Collection.create?