AngularJS ui-router,如何在抽象的partent状态的resolve对象中获取目标状态的名称?

我使用的是ui-router,我有子状态和抽象状态 – 父母.

现在,我希望能够进行一些用户角色管理,我想在一个地方为所有根目录进行管理.

最好的方法是在父级的状态解析对象中.$stateProvider

在这里,我这样做来管理app宽度认证数据.

问题是,如何从抽象状态的解析函数获取目标状态?

.state('section',{
        abstract: true,template: '<ui-view/>',resolve: {

            // Auth & role management middleware.
            UserData: ['$q','$stateParams','Session',function ($q,$stateParams,Session) {

                // HOW DO I GET THE DESTINATION ROUTE HERE.
                $state.current.name - returns null
                $stateParams  - is an empty object.
                // ANY IDEAS?

                var userData;
                userData = Session.getUserData();
                if (userData.token) {
                    return userData;
                }
                return $q.reject('login');
            }]
        }
    });

解决方法

内部解析时状态未更新.

到目前为止,我的解决方法是收听’$stateChangeStart’事件

$rootScope.$on(‘$stateChangeStart’,callback)

此事件在resolve之前发出,第二个param传递给callback是toState,它具有您需要的信息.

您可以将此逻辑放入Session服务中

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...