文档有一个很好的总结:
每当服务器返回集合的模型时,Backbone 都会调用 fetch。该函数传递原始响应对象,并应返回要添加到集合中的模型属性数组。默认实现是无操作的,只是通过 JSON 响应。
http://backbonejs.org/#Collection-parse
1) 您应该返回一个模型属性数组。如果您的 JSON 响应只有这个,那么您不需要做任何事情。通常,解析覆盖仅用于指向 JSON 对象内部的右侧部分。例如,如果您的回复是这样的:
{
httpCode: 200,
responseMessage: 'success',
data: [ {model1}, {model2} ...]
}
那么您需要覆盖 parse 以指向 data 键:
parse: function(response) {
return response.data;
}
2) 他们的意思是response arg 是服务器返回的对象。
3) 第二个options arg 是传递给.fetch 调用的options。除非您想基于 URL、HTTP 方法或任何其他可以传递给 fetch 的东西(以及 jQuery.ajax 选项和一些像 reset 这样的 Backbone 选项)做一些特定的逻辑,否则您不必担心它。
4)
parse: function(response, options) {
// For some reason POST requests return a different data structure.
if (options.method === 'POST') {
return response.data;
}
return response;
}