我是新来的骨干。如果这个问题之前有人回答过,请原谅。我试着用谷歌搜索,但找不到答案。
window.InfoCollection = Backbone.Collection.extend({
model:InfoModel,
url:"../api/info",
parse: function (response) {
console.log("In Parse" + response.length)
return response;
}
});
返回长度为1
但是这里显示为0
this.InfoCollection.fetch({success:function(){console.log(this.length)}});
因此,当我用infommodel初始化一个视图时,它失败了。
有没有专家能给我指出正确的方向?
From the fine manual:
parse
collection.parse(response, options)
[…函数被传递给原始的
response
对象,并且应该返回要添加到集合中的模型属性数组。
显然你在response
中得到了预期的数组(长度为1),但你的parse
只返回第一个元素:
return response[0];
但是集合期望得到一个对象数组(每个模型一个对象)而不是单个对象。结果是你最终得到一个空集合,因为你没有给它任何它可以加载的东西;空集合的长度为0,这就是你所看到的
你可能想让你的parse
看起来像这样:
parse: function (response) {
console.log("In Parse" + response.length)
return response;
}
这只是默认的parse
实现和一个console.log
调用,所以你可能不需要它。