2012-02-24 9 views
8

Backboneルーターが特定のルーティング機能を呼び出す前に、どのように通知を受けることができますか?Backbone.jsで経路を変更する前に機能を実行する

すべてのページをレンダリングする前に、一般的な「リセット」機能が必要です。

バインドできるイベントはありますか?

更新:私が見つけた解決策は、イベントをトリガーするためにルータまたは履歴を拡張することに基づいています。

+0

私はこの回答でこの問題の解決策を持っている:http://stackoverflow.com/a/16298966/2330244 –

答えて

9

バックボーンの1.1.x releaseあなたがRouter.execute方法で望むものを持っているように見えます:

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

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

私は、コンストラクタでこれを使用して」いますし、それがこの

正常に動作しています。 bind( "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

は、どのようにそれが問題を解決した理由について、ソリューションに関するいくつかのコメントを追加してください。 –

関連する問題