javascript - 从远程 url 获取 Backbone 集合错误

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

我正在尝试使用从远程 URL 加载的主干来设置一个模型: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的例子,我可以在其中使用backbone来获取数据?

编辑:我应该补充一点,我查看了 Chrome 上的网络控制台,并从 github 获得了 200 OK 响应和正确的 JSON 响应。我想我只是不知道如何访问该数据并用它填充我的 RepoCollection。

最佳答案

您的数据包装在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/

关于javascript - 从远程 url 获取 Backbone 集合错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454877/

相关文章:

javascript 警报框包含带有类的按钮

web-services - 选择 REST 风格 Web 服务而不是 Soap 的论点

javascript - 在 JavaScript 中使用 GET 调用 RESTful Web 服务

java - Jersey 传递一个空的 JSON

Java rest 网络服务显示名称

asp.net-mvc - Web API和ASP MVC之间的主要区别是什么

javascript - 从 vuejs2 中的子组件更改父 Prop

javascript - 语义 UI 的 Webpack 2 问题

javascript - 在 JavaScript 中创建订阅和取消订阅而不传递订阅者 ID

json - 使用jq,如何将一个非常大的JSON文件拆分为多个文件,每个文件都有特定数量的对象?