collection(list)视图获取稀疏数组(不是所有模型字段),并仅使用name和id构建模型集合。从
开始collection.fetch(); //fetch requesting only partial json fields
集合提取调用集合中的每个模型的collection.parse和相应的model.parse()
。
一切都很好。
然后对单个模型视图执行对集合中的一个模型的重新获取。这次要求所有领域。名称,职称,描述等。
model.fetch({success: function(view) {console.log("yeah");}); //fetch requesting all json fields
后端休息服务器显示请求和提供的响应。
控制台显示“是的”。换句话说,模型提取是通过所有度量来实现的。但是,此时model.parse
不会被调用。因此,新字段不可用。
尽管Ajax“成功”,但为什么model.parse
未被调用的任何提示
此外,主干done
处理程序在respond.text
// Callback for when everything is done
function done( status, nativeStatusText, responses, headers ) {
var isSuccess, success, error, response, modified,
statusText = nativeStatusText;
您遇到过类似的问题:使用已建立的模型ID获取,模型上的获取必须返回对象{}中的json而不是数组[{}]。等等。没有最佳实践thnx
答案 0 :(得分:0)
Backbone.js源代码相对容易理解,你可以直接在Backbone中调试这样的问题。
致电model.fetch
时会发生什么情况基本上如下:
model.sync
(除了选项现在包含不同的成功回调)。model.sync
最终调用成功回调。model.parse
(这可能是出错的地方)。model.parse
的结果用于更新模型属性。通过在model.fetch
呼叫上设置断点并下降到Backbone源,您应该能够找出问题所在。在调试过程中要检查的一些事项是:
model.parse
是您期望的功能吗?model
是您期望的对象吗?如果这没有帮助,请尝试通过删除不相关的代码来创建一个较小的代码示例,从而重现问题。通过这样做,你应该在某个时候能够弄清楚出了什么问题。
如果这仍然不起作用,请使用您的小代码示例创建一个JSFiddle,使用http://www.mockable.io/创建一个模拟后端并再次在此处发布。