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;
}
});
};
あなたはUI-ルータを使用して定義された状態の詳細を投稿してください(が最初に注入する必要があり)を使用する必要があります。 – Pengyy
@Pengyy私は自分の質問を編集しました。助けてください。 –