2016-04-21 4 views
0
$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; 
       } 
      }); 

Ich möchte den obigen Code von ng-route zu ui-router ändern. Ich habe andere in stateProvider und stateParams geändert, aber keine Ahnung, wie sich der $ routeChangeSuccess ändern wird, ist das auf $ stateChangeSuccess?

Antwort

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

sollten Sie $stateChangeSuccess anstelle von $routeChangeSuccess gemäß State Change Events.

$stateChangeStart - ausgelöst, wenn der Übergang beginnt.

$rootScope.$on("$stateChangeSuccess", function() { 

      }); 
0
$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; 
       } 
      }); 

toState.url wird die geänderte URL geben und Aktionen, dass im Zusammenhang tun können.