2017-05-13 6 views
0

ui-routerでどうすればいいですか? NG-ルートでは、私はこの構文を使用しています:角度ui-routerの次の状態を防ぐ

ルータ

.when('/login',{ 
    templateUrl:'app/view/page/users/login.html', 
    isLogged:true 
}) 

アプリの実行

$rootScope.$on('$routeChangeStart',function(event,next) { 
    if(next.$$route.isLogged){ 
     console.log('...') 
    } 
}) 

しかし、それはUI-ルータでは動作しません。 私は

$rootScope.$on('$stateChangeStart',function(event,next) { 
    if(next.$$state.isLogged){ 
     console.log('...') 
    } 
}) 

への変更を試してみましたが、私はislogged underfineを取得します。どのように私は、角-UI-ルータ

EDITでここ

は私が防ぐ必要な状態であることを行うことができます。ユーザーがログインすると、localStorageでユーザーのトークンをプッシュします。そして、私はユーザーのログイン、カント状態レジスタに行くときにしたい。

$rootScope.$on('$stateChangeStart',function(event,next) { 
    if(next.isLogged){   // <------access property directly here 
     // console.log('...') 
     event.preventDefault(); 
     return $state.go('any other state'); 
    } 
}) 

ソリューション:ここ ルータ

.state('register',{ 
         url:'/register', 
         templateUrl:'app/view/page/users/register.html', 
         controller:'regCtrl', 
         controllerAs:'vm', 
         isLogged:false 

        }) 

ここでは、私は、ローカルストレージのUIルータ(1.0.0よりも低い)ため

function authLogin(logData) { 
        return 

    $http.post('/api/authenticate',logData).then(function(data) { 
          if(data.data.token){ 
           console.log(data); 
          authToken.setToken(data.data.token); 
          return data.data; 
         } 

         }); 
        }; 
+0

あなたはUI-ルータを使用して定義された状態の詳細を投稿してください(最初に注入する必要があり)を使用する必要があります。 – Pengyy

+0

@Pengyy私は自分の質問を編集しました。助けてください。 –

答えて

3

ソリューションをプッシュコードでありますui-router(1.0.0以上):

stateChangeイベントは、UI-ルータに廃止されました1.0.0+と新しいバージョンのために、あなたは$transitions

$transitions.onStart({}, function(transition) { 
    if(!transition.to().isLogged) {   // <------ access toState properties by transition.to() 
     return false; 
    } 
}); 
+0

@georgeawgよろしくお願いします。私は他の人に読めるように答えを編集しました。私がやるべきことが他にあるかどうか私に教えてください。再度、感謝します。 :) – Pengyy

+0

[偉大な回答](http://stackoverflow.com/help/badges/25/great-answer)は、他の読者にとって有用なものです。 – georgeawg

+0

@georgeawgええ、それは素晴らしいです。まだ学ぶ:) – Pengyy

関連する問題