【发布时间】:2012-07-18 13:20:39
【问题描述】:
我最近开始使用backbone.js,经过许多教程后,我终于开始熟悉了。
我坚持的一件事是如何使用路由来允许列表拉取不同的休息请求。
假设我的收藏中有以下内容
var NewsCollection = Backbone.Collection.extend({
model : News,
url: 'http://api.example.com/index.php/news/all/format/json',
});
根据我的理解纠正我如果我错了主干将从上述提要中提取的所有数据存储到扩展此集合的模型中,这一切都将起作用,我将拉入提要然后将其显示在视图中
这是我在路由中感到困惑的地方,我有以下几点。
var NewsRouter = Backbone.Router.extend({
routes: {
"": "defaultRoute",
"news/:country_code":"updatedRoute"
},
defaultRoute: function () {
console.log("defaultRoute");
var movies = new NewsCollection()
new NewsView({ collection: movies });
movies.fetch();
//setInterval(function(){movies.fetch({success: function(){}});}, 60000);
},
updatedRoute:function (country_code) {
//confused
this.movie = this.movies.get(country_code);
}
})
我需要运行 updatedRoute 函数,它会显示基于国家代码猫的新闻列表,见下文。 http://api.example.com/index.php/news/country/gb/format/json
如何在单击列表项时更新整个提要,以便浏览器 url 成为。
http://localhost:8888/backbonetut/#news/gb
我的列表项是。
<li><a href='#news/gb'>GB</a></li>
我可以在 updateRoute 函数中使用
this.movie = this.movies.get(country_code);
有人可以帮忙
【问题讨论】:
-
这很简单。您将过滤而不是获取。 _.filter(documentcloud.github.com/underscore/#filter) 获取 json 数组并将它们过滤到匹配集。您必须创建一个新变量来保存该集合并将其传递给 可以 显示它的视图。
标签: json api rest backbone.js routes