从 ngRoute 迁移到 ui.router $rootScope.$on '$stateChangeStart' 不触发
migrate from ngRoute to ui.router $rootScope.$on '$stateChangeStart' not triggering
我正在尝试创建一个身份验证系统。我偶然发现了 this (plunk) 教程,它很棒但是使用了 ngRoute,我希望切换到 ui.router.
在尝试自己完成一些困难之后,我决定进行更多搜索以找到 this ui.router auth demo (plunk)。
我替换了一些东西,现在我的代码看起来像 this (plunk)。
我已经成功地用 ui.router 替换了 ngRoute 但我有一个小问题:
module.run 方法命中,但在其中我有下面的代码永远不会被触发(我只希望弹出警报,以便可以继续编写重定向逻辑)。
$rootScope.$on('$stateChangeStart', function (e, toState, toParams, fromState, fromParams) {
alert("enter");
// redirect to login page if not logged in and trying to access a restricted page
// var restrictedPage = $.inArray($state.path(), ['/login', '/register']) === -1;
// var restrictedPage = !($state.includes("login") || $state.includes("register"));
var loggedIn = $rootScope.globals.currentUser;
if (!loggedIn) {
$state.go('login');
}
});
我还没有弄清楚我做错了什么。
谢谢你们的宝贵时间!
尝试 this 版本。
基本上,使用 $transitions
而不是 $rootScope.$on('$stateChangeStart'
,因为它已被弃用。
我正在尝试创建一个身份验证系统。我偶然发现了 this (plunk) 教程,它很棒但是使用了 ngRoute,我希望切换到 ui.router.
在尝试自己完成一些困难之后,我决定进行更多搜索以找到 this ui.router auth demo (plunk)。
我替换了一些东西,现在我的代码看起来像 this (plunk)。
我已经成功地用 ui.router 替换了 ngRoute 但我有一个小问题:
module.run 方法命中,但在其中我有下面的代码永远不会被触发(我只希望弹出警报,以便可以继续编写重定向逻辑)。
$rootScope.$on('$stateChangeStart', function (e, toState, toParams, fromState, fromParams) {
alert("enter");
// redirect to login page if not logged in and trying to access a restricted page
// var restrictedPage = $.inArray($state.path(), ['/login', '/register']) === -1;
// var restrictedPage = !($state.includes("login") || $state.includes("register"));
var loggedIn = $rootScope.globals.currentUser;
if (!loggedIn) {
$state.go('login');
}
});
我还没有弄清楚我做错了什么。 谢谢你们的宝贵时间!
尝试 this 版本。
基本上,使用 $transitions
而不是 $rootScope.$on('$stateChangeStart'
,因为它已被弃用。