加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS ui-router,如何在抽象的partent状态的resolve对象中获

发布时间:2020-12-17 07:00:53 所属栏目:安全 来源:网络整理
导读:我使用的是ui-router,我有子状态和抽象状态 – 父母. 现在,我希望能够进行一些用户角色管理,我想在一个地方为所有根目录进行管理. 最好的方法是在父级的状态解析对象中.$stateProvider 在这里,我这样做来管理app宽度认证数据. 问题是,如何从抽象状态的解析函
我使用的是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服务中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读