Backbone.js集合使用this.fetch ERROR调用XML文件

myBook = Backbone.Collection.extend({ initialize: function(models, geturl) { var self = this; this.url = geturl; this.fetch({ dataType: "xml", async: false, success: function(collection, xml) { ... ... ... } }); } }); 

我不能让这个工作。 有人请建议我解决这个问题。 我真的需要从集合中调用XML。 我尝试使用$ .ajax()但是失败了,所以我尝试使用backbone.js函数来获取XML,但不幸的是我无法让它工作。

我使用: – Backbone.js 0.9.2&jQuery v1.8.3

谢谢。

Backbone希望服务器响应为JSON。 您应该使用解析XML的函数覆盖Model.parse并返回纯Javascript对象。 jQuery.parseXML非常便于将简单的XML映射到对象。

假设您的XML响应如下所示:

  1 foo  

并且您希望模型属性看起来像:

 { id:1, foo:'foo', foobar:'foobar' } 

您可以按如下方式解析它:

 var YourModel = Backbone.Model.extend({ parse: function(xml) { var $xml = $.parseXML(xml); return { id: parseInt($xml.find('id').text(), 10), foo: $xml.find('foo').text(), foobar: $xml.find('foo').attr('bar') } } });