使用Angular UI路由器访问当前状态

时间:2015-10-25 06:12:50

标签: angularjs angular-ui-router

我提到的状态为

        .state('login', {
            url: '/login',
            templateUrl: 'views/login.html',
            controller: '',
            ncyBreadcrumb: {label: 'Home'},
            data: {freeRoute: true}
        })
        .state('dashboard', {
            url: '/',
            templateUrl: 'views/login.html',
            controller: '',
            ncyBreadcrumb: {label: 'Dashboard'},
            data: {authenticatedRoute: true},
        })

如果页面被刷新,我希望运行配置,如此

    .run(function ($rootScope, $state, $stateParams, AUTH_EVENTS, dataService) {
    if ($state.$current.data.authenticatedRoute == true) {
        console.log('Authenticated Route.');
        if (dataService.isAuthenticated()) {
            $rootScope.$broadcast(AUTH_EVENTS.alreadyAuthenticated);
        } else {
            $rootScope.$broadcast(AUTH_EVENTS.notAuthenticated);
        }
    } else {
        console.log('Not Authenticated Route.');
    }
    });

但是当我尝试在当前状态下记录控制台时,它给了我这样的......

{"name":"","url":"^","views":null,"abstract":true}

- 我如何获得当前状态。在控制器?我也试过console.log($state.$current); - 无论控制器如何,我如何访问视图?

1 个答案:

答案 0 :(得分:0)

您应该能够使用console.log($state.current)查看当前有效状态的姓名,父级,网址等。

顺便说一句,如果您想快速使用命令行在调试控制台中查看此详细信息,您可以在开发工具的调试控制台中使用以下类型的命令:

$("html").injector().get("$state").current