从ngRoute迁移到ui.router $ rootScope。$ on' $ stateChangeStart'没有触发

时间:2017-03-01 20:02:32

标签: angularjs angular-ui-router ngroute

我正在尝试创建一个身份验证系统。我发现了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');
        }
    });

我还没弄清楚我做错了什么。 谢谢你们的时间!

1 个答案:

答案 0 :(得分:1)

试试this版本。

基本上,使用$transitions代替$rootScope.$on('$stateChangeStart',因为已弃用。