在Backbone中,是否有可能告诉fetch它是否读取内容类型的内容:'text / plain'将其读作JSON

时间:2013-09-02 20:18:54

标签: backbone.js

我有一个将json文件作为'text / plain'发回的网络服务器。我很遗憾无法调整此。即使它具有此内容/类型,我是否可以告诉集合上的主干提取将其读取为JSON?就像响应的emulateJSON一样?

THX

基本上想解决这个问题:

enter image description here

这是我的骨干代码,我遇到了问题(总骨干菜鸟,所以我知道我的处理方式很可能有问题):

var MyItemList=Backbone.Collection.extend({url:'items.json', model:MyItem,
   // not sure if I need this?
   parse: function(response) {
    return response.results;
  }
});

var AppRouter=Backbone.Router.extend({
     routes:{'':'list','detail/:id':'detail'},
     list:function(){
     var itemList=new MyItemList();

     itemList.fetch({ dataType:'json',
                      error: function () {
                        console.log("error!!"); 
                      },
                      success: function () {
                         console.log("no error"); 
                      }
                   }).complete(function () {
                       console.log('done');
                       console.log('length1:' +  itemList.length);
                   });
    console.log('length2: '+ itemList.length);
}

我的json:

enter image description here

删除解析方法:

enter image description here

使用Parse: enter image description here

1 个答案:

答案 0 :(得分:3)

Backbone在引擎盖下使用jQuery.ajax来获取ajax请求。

因此,您需要使用dataType: 'json'选项来指定在调用fetch时jQuery应如何处理响应:

yourCollection.fetch({
    dataType: 'json'
});