0
は、私のような私のウェブサイトのためのログインモジュールを作成し、ログインするためにリダイレクトすることはできません。角度ログインページ
angular.module('caknow', [
'ui.router',
'ngStorage',
'authentication',
'login'
])
.config(['$stateProvider', '$urlRouterProvider',function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('index', {
url: '/',
templateUrl: '../template/dashboard/dashboard.html'
})
.state('login', {
url: '/login',
templateUrl: '../template/authen/login.html',
controller: 'loginController'
});
}])
.run(['$location', '$http', 'tokenSer', '$state', '$rootScope', function($location, $http, tokenSer, $state, $rootScope) {
$http.defaults.headers.common['x-api-key'] = '*********';
var token = tokenSer.get(); // service to get token store in localStorage.
if (token) {
$http.defaults.headers.common['x-access-token'] = 'token';
}
console.log("hello world");
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams, options){
if ($location.path() != '/login' && !token) {
console.log("hello world login");
$state.go('login');
}
});
}])
などのメインページ:index
状態については
<BODY ng-app="caknow">
<div ui-view></div>
</BODY>
、Iメインページのdashboard.htmlテンプレートをロードします。
login
の状態では、メインページの読み込みlogin.htmlテンプレートが必要です。
ユーザーがログインせずにサーバーからトークンを取得した場合、ユーザーはlogin
州にリダイレクトされます。しかし、http-serverを使ってサーバーを起動し、localhost:port
に初めてアクセスしようとすると、私はログインページにリダイレクトせず、白いページを表示します。私の意見では、私は$stateChangeStart
が放出しないことがわかります。
それは動作しません。 $ stateChangeStartが無限に放出されていることがわかります –
$ stateChangeSuccessに追加して、それがうまくいくかどうか確認できますか? –