2012-07-19 40 views
1

我最近开始使用backbone.js,并且在终端教程后我终于开始学习。与backbone.js使用多个json请求

我被卡住的一件事是如何使用路由来允许列表拉取不同的休息请求。

说,我有我的收藏

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

如何更新整个饲料,当一个列表项点击,所以浏览器的网址会。

http://localhost:8888/backbonetut/#news/gb 

我的清单项目是。

<li><a href='#news/gb'>GB</a></li> 

我可以得到在updateRoute功能与

this.movie = this.movies.get(country_code); 

能有人帮

+0

很简单。你会过滤而不是get。 _.filter(http://documentcloud.github.com/underscore/#filter)接受json数组并将其过滤为匹配集。您必须创建一个新变量来保存该集合并将其传递给**可以显示它的视图。 – Deeptechtons 2012-07-19 11:27:23

回答

0

您可以覆盖你的集合fetch功能或临时更改收集url在你的路由器动作。