我使用Backbone.js来构建一个应用程序,通常通过JSON与网络服务进行沟通。
一个网络服务会在成功或 XML 出错时返回 JSON 。 我需要解析 XML 响应以确定错误, 但 Backbone 的 JSON 中心思维正在给我造成问题 。
我有一个包含分析函数的收藏。 当服务返回 JSON 时, 分析函数总是被调用, 在这种情况下, 我只需要返回响应对象 。 但是, 当服务返回 XML 我的抓取调错误回回调功能被调用, 并用 arguments [1]
的 parseerrror
传递错误对象。 进一步的挖掘显示有一个意外的 lt;
字符 。
为什么我的剖析功能在被抛出牧羊人之前没有被叫来分析XML?此外,为什么在成功的JSON电话中,它通过了JavaScript 对象(表明JSON字符串已经被解析了)? 剖析功能难道不应该做剖析吗?
以下相关守则、任何建议都十分赞赏。
var myCollection = Backbone.Collection.extend({
initialize : function() {
...
},
fetch: function(options) {
var options = {data: {...}, error: this.onFetchError};
Backbone.Collection.prototype.fetch.call(this, options);
},
onFetchError: function(arg1, arg2, arg3) {
debugger
},
parse: function(response) {
debugger
if(typeof response === object ) {
return response;
}
}
});
return myCollection;