从远程URL错误中获取主干集合

时间:2014-06-27 14:55:20

标签: javascript json rest backbone.js backbone-collections

我尝试使用从远程网址加载的主干设置模型:https://api.github.com/legacy/repos/search/javascript。这是我到目前为止所拥有的。

var Repo= Backbone.Model.extend({});

var RepoCollection = Backbone.Collection.extend({
    url : "https://api.github.com/legacy/repos/search/javascript",
    model : Repo
});


var repos = new RepoCollection();

repos.fetch({success: function(){
    console.log(repos.models);
}});

这只是给了我一个空数组。为什么这不起作用?这个url只包含一个非空的JSON数组。我也尝试过解析功能而没有任何成功。

parse : function(data) {
   return data.results;
}

如果github api不支持这种调用,有没有人有一个远程url的例子,我可以用骨干来获取数据?

编辑:我应该补充一点,我查看了Chrome上的网络控制台,我收到了来自github的正确JSON响应的200 OK响应。我想我只是在弄清楚如何访问这些数据并用它填充我的RepoCollection。

2 个答案:

答案 0 :(得分:0)

您可以尝试:

repos.fetch({success: function(data){
    console.log(data);
}});

答案 1 :(得分:0)

您的数据包含在repositories密钥中,而不是results中,并且看起来像这样

{
    "repositories": [
        ...
    ]
}

尝试

var RepoCollection = Backbone.Collection.extend({
    url : "https://api.github.com/legacy/repos/search/javascript",
    model : Repo,

    parse : function(data) {
        return data.repositories;
    }
});

和演示http://jsfiddle.net/nikoshr/vHX7C/