2
は私の.RUN機能である:
.run(function ($transitions, UserService) {
$transitions.onStart({ to: function(state) {
return state.data != null && state.data.requireLogin === true && UserService.getUser().isLogged !== true;
}},function(trans){
var AuthService = trans.injector().get('AuthService');
var $q = trans.injector().get('$q');
var $state = trans.injector().get('$state');
var defer = $q.defer();
AuthService.login().then(function (status){
if(status === 'login'){
defer.resolve(true);
}else if (status === 'register'){
defer.resolve($state.target('map.register'));
}
}, function (msg){
// Here is part that I am asking for
defer.resolve(false);
});
return defer.promise;
});
});
ログインとユーザーがtransitionHookFn
ログインしていない必要があり状態に遷移が使用されている基本的には場合。私はAuthService.login()
を使用し、ステータスの約束を返す。 AuthService.login()
が失敗した場合(ユーザがキャンセルした場合)、約束は偽を返し、移行をキャンセルし、ユーザを彼と同じ状態にする。
問題は、最初のロード時に制限されたページにアクセスしようとしたときに始まり、以前の状態がなくページ全体が空白になっているためログインをキャンセルします。
前の状態がある場合に移行をキャンセルする方法はありますか?家にリダイレクトしない場合はどうすればよいですか?私は以前の状態にアクセスし、そこにいるかどうかを確認する必要があります。
trans.params().PARAM-NAME
: