2012-02-24 72 views
8

如何在Backbone路由器調用特定路由功能之前得到通知?在改變Backbone.js中的路由之前執行一個函數

我想在呈現每一頁之前有一個通用的「重置」函數。

是否有任何事件可以綁定?

更新:我發現的解決方案基於擴展路由器或歷史記錄以觸發事件。

+0

我在這個答案針對此問題的解決方案:http://stackoverflow.com/a/16298966/2330244 – 2013-04-30 12:12:58

回答

9

它看起來像骨幹的1.1.x release有要與Router.execute方法是什麼:

MyRouter = Backbone.Router.extend({ 
    routes: {}, 

    // fired before every route. 
    execute: function(callback, args) { 
    // ... 
    } 
}); 
0

我我在構造函數中使用這個和它的正常工作

這一點。綁定(「all」,this.ACL);

這裏ACL是一個功能

2

如果執行功能出現時,它會在每次路由改變之前被調用,但你必須傳遞的參數回調正確執行其它匹配的路由。

MyRouter = Backbone.Router.extend({ 
     routes: {}, 

     // fired before every route. 
     execute: function(callback, args, name) { 
     //your logic 
     if (callback) callback.apply(this, args); //this must be called to pass to next route 
     }, 
    }); 
+0

請添加一些評論對您的解決方案,爲什麼,以及如何解決問題 – 2016-03-17 14:51:19