我正在尝试使用从远程 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;
}
});
关于javascript - 从远程 url 获取 Backbone 集合错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454877/