2015-09-24 31 views
1

即時通訊面臨一個問題,我不知道如何解決它。AngularJS得到下一個狀態

的問題是,我需要去從/登錄/應用/設置,無需洛英寸

問題是,當我上輸入/ APP它檢查其登錄...我怎樣才能得到im路由的下一個狀態?

app.js

.state('app', { 
    url: "/app", 
    abstract: true, 
    templateUrl  : "templates/menu.html", 
    controller  : 'AppCtrl', 
    onEnter: function($state, Auth){ 
     console.log($state.toState,"toState") 
     if(!Auth.isLoggedIn()){ 
      $state.go('login'); 
     } 
    } 
    }) 

.state('login', { 
    url: "/login", 
    templateUrl  : "templates/session/login.html", 
    controller  : 'SessionCtrl' 
    }) 

的login.html:

<button ui-sref="app.settings({toState: 'app.config'})" class="button icon ion-ios-information-outline"></button> 

我怎樣才能得到app.settings路線?

回答

2

您可以添加一個隱藏參數auth是可選的。

.state('app', { 
    url: "/app", 
    abstract: true, 
    templateUrl  : "templates/menu.html", 
    controller  : 'AppCtrl', 
    params: { 
     ignore: false 
    }, 
    onEnter: function($state, $stateParams, Auth){ 
     if(!$stateParams.ignore && !Auth.isLoggedIn()){ 
      $state.go('login'); 
     } 
     } 
    }) 

然後,設置這個隱藏PARAM

<button ui-sref="app.settings({toState: 'app.config'})" ui-sref-opts="{ignore:true}" class="button icon ion-ios-information-outline"></button> 
+0

在寫一模一樣的答案,只是給了一個其他的名字帕拉姆。這個解決方案可能是最簡單的方法:) – Okazari

+0

我總是得到ignore = false:S –

+1

試試這個:ui-sref =「app.settings({toState:'app.config',ignore:true})」 – Okazari