2013-02-15 3 views
8

Я довольно новичок в AngularJS.Пожар обратного вызова при изменении маршрута (анимации, загрузчики и т. Д.) В AngularJS

Когда маршрут изменен, ng-view изменяет содержимое. То, что я хотел бы сделать, - это связать какое-то поведение при изменении маршрута.

  1. Я хотел бы быть в состоянии, например, анимировать вид мы находимся уходящих (выведение и сдвинув влево), а когда следующий вид легко доступен, исчезают и скользят вид в. Это может быть реализовано путем добавления класса к телу по маршруту загрузке и удалению класса по изменению маршрута преуспевающего

  2. Я хотел бы возможность иметь взгляды друг на справа от текущего вида, так что, когда один движется вперед, следующий вид - , который сначала загружается в буровую установку ХТЫ от текущего, то видовой сдвинется вправо так, чтобы текущий вид скользит почти из зрения, и следующие слайды в поле зрения (Windows Phone, как выкл холст навигация)

ли $ routeProvider подходящее место для этого?

Есть ли там гуру, которые могли бы указать мне в правильном направлении?

ответ

11

После еще некоторых исследований, есть события, обожженные для этой цели.

$scope.$on('$routeChangeStart', function(scope, next, current){ 
    //... 
}); 

$scope.$on('$routeChangeSuccess', function(scope, next, current){ 
    //... 
}); 

Если проблема заключается в том, чтобы анимировать что-либо (например, при изменении маршрута), я рекомендую использовать ngAnimate. Подробнее об этом here

+2

Мы видим, что DOM обычно не полностью увлажняется шаблоном пути, когда «$ routeChangeSuccess 'срабатывает. – deepelement

3

Вы можете установить часы на уровне области корня, чтобы поймать изменение местоположения:

$rootScope.$watch(function { 
    return $location.path(); 
    }, 
    function(newValue, oldValue) { 
     if (newValue != oldvalue) { 
     // here you can do your tasks 
     } 
     else { 
     } 
    }, 
    true); 
+0

Спасибо за ваш ответ, но мне не интересно, как сделать анимацию на любом div или, например, на ng-view. Каков наилучший способ, например, добавить класс в тело и удалить его при завершении загрузки, сделать некоторые базовые переходы CSS между состояниями? –

+0

Кажется, вы нашли ответ самостоятельно, во всяком случае, жаль, что я не могу вам помочь, я мало что знаю о эффектах веб-интерфейса – remigio