无法使用next和prev参数访问$ locationChangeStart中的$ state自定义属性

时间:2015-01-04 13:09:18

标签: angularjs angular-ui-router

  

我想做什么

如问题标题中所述,我想检查下一条路线的授权和认证,以便我在路线上制作自定义属性并尝试在$ locationChageStart中访问它们。

  

我面临的问题是

eventnextprev/current参数是正确的,但自定义属性返回未定义

我的代码

myModule.run(function($rootScope,authService,$state){

        $rootScope.$on("$locationChangeStart",function(e,next,prev){

            console.log(e+","+next+","+prev);  //correct
            console.log(next.reqAuthentication); // returning undefined
            console.log(prev.reqAuthentication); // returning undefined
        });
    })

和Config路由类似

           .state('profile.company', {
            url: "/company",
            templateUrl: 'partials/companyprofile.html',
            controller: 'adminCtrl',
            reqAuthentication:true,
            authenticateRole:['a','b',"c"]

        })
        .state('profile.messages', {
            url: "/messages",
            templateUrl: 'partials/chat.html',
            controller: 'adminCtrl',
            reqAuthentication:true,
            authenticateRole:['a','b',"b"]
            })

注意:我正在使用ui路线,所以我觉得有一些问题我将它与ngRoute混合

1 个答案:

答案 0 :(得分:2)

您可以使用:

$rootScope.$on('$stateChangeSuccess', 
function(event, toState, toParams, fromState, fromParams){ ... })

如果你想与州合作。

您可以找到更多详细信息https://github.com/angular-ui/ui-router/wiki