Сервис $state генерит евенты, которые можно перехватитьна скоупе
$scope.$on('$stateChangeSuccess',
function(event, toState, toArgs, fromState, fromArgs) {
делать что-угодно при смене состояния (которое уже наступило)
})
а, так вам надо именно синхронизировать одну анимацию с другой?
ну, я полагаю, что смена классов и это событие произойдут в один и тотже digest цикл, и если вы в обработчике поменяете ещё чтото, то от ui-view вы отстанете всего на один цикл.