2013-01-17 99 views
0

我是Backbone.js的新手,並不完全瞭解某些類型的路由器實現之間的區別。Backbone.js路由器實現

1.類型:

var Workspace = Backbone.Router.extend({ 
     routes:{ 
      '*filter': 'setFilter' 
     }, 

     setFilter: function(param) { 
      // Set the current filter to be used 
      Common.TodoFilter = param.trim() || ''; 

      // Trigger a collection filter event, causing hiding/unhiding 
      // of the Todo view items 
      Todos.trigger('filter'); 
     } 
    }); 

2.類型:

var AppRouter = Backbone.Router.extend({ 

     routes: { 
      // default 
      '*actions': 'defaultAction' 
     } 

    }); 

    var initialize = function() { 

     var router = new AppRouter(); 

     router.on('route:defaultAction', function(actions) { 

      var homeView = new HomeView(); 
      homeView.render(); 

     }); 

     Backbone.history.start(); 

    }; 

    return { 
     initialize: initialize 
    }; 

那麼,就是在1型和功能router.on正常回調(使用setfilter)之間的差('route:defaultAction',function(actions)?

回答

1

來自Backbone Catalog of Events

「route:[name]」(params) - 匹配特定路由時由路由器啓動。

所以router.on('route:defaultAction'...方式綁定到路由器每次匹配路由時觸發的事件。路由器本身不需要回調,但路由必須在routes-hash或路由功能調用中定義。

第一種方式是將路線與功能進行匹配的最基本方法,其中the routes -object

你的路由器上的路由與函數的參數哈希將URL映射

希望這有助於!

+0

感謝您的解釋 – Potty