2014-12-14 2 views
2

Я работаю над простой анимацией, которая меняет цвет фона при изменении массива.ng-animate цвет фона импульса путем добавления класса, затем удаление класса

Plunker: http://plnkr.co/edit/27K6B6vHa4ayuPbgRSP3?p=preview

Моя директива:

app.directive('animateOnChange', ['$animate', function($animate) { 
    return function(scope, elem, attr) { 
    scope.$watchCollection(attr.animateOnChange, function() { 
     $animate.addClass(elem, 'on').then(function() { 
     $animate.removeClass(elem, 'on'); 
     }); 
    }); 
    }; 
}]); 

кажется, что addClass и removeClass бежать в то же самое время, и on класс никогда не удаляется. Он постепенно исчезает, но не исчезает.

ответ

7

Заверните его в $ таймаута обратного вызова, чтобы заставить два разных дайджестов:

http://plnkr.co/edit/cWciPY4zJ8lSr31CECMS?p=preview

Есть несколько способов сделать это, но это один, пожалуй, самый простой.

+1

Awesome. Работает отлично. – nathancahill