Angularjs 从ng路由更改为ui路由器$routeChangeSuccess不起作用

Angularjs 从ng路由更改为ui路由器$routeChangeSuccess不起作用,angularjs,angular-ui-router,ngroute,Angularjs,Angular Ui Router,Ngroute,我想将上面的代码从ng route更改为ui router。我将其他人更改为stateProvider和stateParams,但不知道$routeChangeSuccess将如何更改为$StateChangeSucces?您应该使用$StateChangeSucces而不是$routeChangeSuccess $scope.$on("$routeChangeSuccess", function (event, next, current) { switch (

我想将上面的代码从ng route更改为ui router。我将其他人更改为stateProvider和stateParams,但不知道$routeChangeSuccess将如何更改为$StateChangeSucces?

您应该使用
$StateChangeSucces
而不是
$routeChangeSuccess

$scope.$on("$routeChangeSuccess", function (event, next, current) {
                switch (next.originalPath) {
                    case "/ac" :
                        $scope.currentTab = 1;
                        break;
                    case "/bp/:type?/:tab?":
                        $scope.currentTab = 2;
                        break;
                    case "/bs":
                        $scope.currentTab = 3;
                        break;
                    default :
                        $scope.currentTab = 1;
                        break;
                }
            });
$stateChangeStart
-转换开始时激发


您应该使用
$stateChangeSucture
而不是
$routeChangeSuccess
,如所示

$stateChangeStart
-转换开始时激发


是的,我成功了。从这里查看更多信息

是,$statechangesucture。从这里可以看到更多

toState.url将给出更改后的url,并且可以执行与此相关的操作

toState.url将给出更改后的url,并且可以执行与此相关的操作

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

            });
$scope.$on("$stateChangeSuccess", function (event, toState, toParams, fromState, fromParams) {
                switch ( toState.url ) {
                    case "/ac" :
                        $scope.currentTab = 1;
                        break;
                    case "/bp":
                        $scope.currentTab = 2;
                        break;
                    case "/bs":
                        $scope.currentTab = 3;
                        break;
                    default :
                        $scope.currentTab = 1;
                        break;
                }
            });