【问题标题】:migrate from ngRoute to ui.router $rootScope.$on '$stateChangeStart' not triggering从 ngRoute 迁移到 ui.router $rootScope.$on '$stateChangeStart' 未触发
【发布时间】:2017-07-21 07:48:49
【问题描述】:

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

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

【问题讨论】:

  • 一个问题。你使用的是哪个版本的ui-router

标签: angularjs angular-ui-router ngroute


【解决方案1】:

试试this 版本。

基本上,使用$transitions 而不是$rootScope.$on('$stateChangeStart',因为它已被弃用。

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多