Переключение с ng-route на ui-router $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;
}
});
Я хочу изменить приведенный выше код с ng-route на ui-router. Я изменил другие на stateProvider и stateParams, но не знаю, как изменится $routeChangeSuccess, это на $stateChangeSucess?
4 ответа
Решение
$rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams){ ... })
Вы должны использовать $stateChangeSuccess
вместо $routeChangeSuccess
согласно событиям изменения состояния.
$stateChangeStart
- уволен, когда начинается переход.
$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;
}
});
toState.url выдаст измененный URL и может выполнять действия, связанные с этим.
Да, $stateChangeSuccess. Смотрите больше здесь https://github.com/angular-ui/ui-router/wiki