ユーザー認証システムを実装しようとしています。401
http status code とHTTP Auth Interceptor Moduleについて読みました。
モジュールを bower でダウンロードし、アプリ モジュールにロードしました。まだ使用していませんが、このモジュールがトリガーするのと同じイベントを使用して、ユーザーがブラウザーでアプリケーションを開いたときにユーザー ログイン ポップアップを表示したいと考えています。
私のコントローラーはすべての子ですCoreController
。現在のCoreController
ユーザーを解決します。アプリケーションのロード時にログインしているユーザーがいないため、イベントを発行するログインフォームを表示したい: event:auth-loginRequired
(http-auth-interceptor と同じ)。
これCoreController
には、この特定のイベント ( ) をリッスンする別のルールがありevent:auth-loginRequired
ます。このイベントが検出されると、コントローラーはそのstate
ID を呼び出すポップアップを表示します。
私が抱えている問題は、イベントを正しく発行したとコンソールが言っているが、リスナーがトリガーされていないため、ログインポップアップが表示されないことです。
これが私のものCoreController
です:
/**
* Index controller definition
*
* @scope Controllers
*/
define(['./../module', 'moment'], function (controllers, moment) {
'use strict';
controllers.controller('CoreController', ['$scope', '$rootScope', '$state', 'user', function ($scope, $rootScope, $state, user)
{
console.log('Core Controller Loaded');
$scope.loader = true;
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams)
{
$scope.loader = true;
});
$scope.$on('event:auth-loginRequired', function(event, toState, toParams, fromState, fromParams)
{
console.log('catch auth required');
$state.go("main.login");
});
if (user.isLogged == false) {
console.log('emit auth required');
$rootScope.$emit('event:auth-loginRequired');
}
}]);
});
私は何を間違っていますか?
乾杯、マキシム