2014-01-21 84 views
0

之前,我有一個主幹應用骨幹重定向從路由功能

route: function(route, name, callback) { 
     var router = this; 
     if (!callback) callback = this[name]; 

     var beforeRoute = function() { 
      var location = Backbone.history.fragment; 
      var status = this.authorize(); 

      if(location =="" && status['logged_in'] == true){ 
       router.navigate("stream", {trigger: true}); 
      } else if(location !="" && status['logged_in'] == false){ 
       router.navigate("login", {trigger: true}); 
      } 

      callback.apply(router, arguments); 
     }; 
     return Backbone.Router.prototype.route.call(this, route, name, beforeRoute); 
}, 

這是我的路由器,基本上它會檢查,如果用戶登錄或沒有在每次調用每個路徑之前運行的功能。我的問題是

router.navigate("stream", {trigger: true}); 

不按預期觸發(應重定向到流路由)。我試過this.navigate並嘗試設置route =「stream」,但沒有按預期重定向 - 除了重新分配window.location,導致頁面重新加載,對於應用程序而言並不理想。

有關如何在此beforeRoute函數內重新路由的任何建議?

回答

1

包裹在一個else最後一位阻止

} else { 
    callback.apply(router, arguments); 
}