//Model
var Dog = Backbone.Model.extend({
name:'',
breed:''
});
//Collection
var Dogs = Backbone.Collection.extend({
model : Dog,
url : '/dogs'
parse : function(res)
{
alert('response' + res);
return res;
}
});
这是我从服务器收到的使用Jersey实现的JSON目标。 我从Server返回一个DogModel列表,它被转换为JSON
@Produces(MediaType.APPLICATION_JSON)
{"DogModel":[{"name":"Jane","breed":"Great Dane"},
{"name":"Rocky","breed":"golden Retriver"},
{"name":"Jim","breed":"Lab"}]}
想知道我还没有正确理解Collection及其url属性的用法。 我的假设是,当在Collection上调用fetch时,它将从服务器获取狗的详细信息并填充该集合。
我确实得到了如上所述的回复,但未按预期填充该集合。
如何使用集合自动填充模型列表? 我是否需要处理JSON对象的表示?
帮助感谢!!!
答案 0 :(得分:11)
parse
函数需要返回狗的数组。因此,您可以按如下方式更新代码。
parse : function(res)
{
alert('response' + res);
return res.DogModel;
}
在旁注中,您希望在defaults
哈希上声明模型的默认属性值,如下面的代码所示(see documentation)
var Dog = Backbone.Model.extend({
defaults: {
name:'',
breed:''
}
});