我正在尝试实现用户身份验证系统。我已阅读有关401
http 状态代码和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');
}
}]);
});
我究竟做错了什么?
干杯,马克西姆