mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
fix($animate): ensure class-based animations are always skipped before structural post-digest tasks are run
Closes #5582
This commit is contained in:
parent
162144202c
commit
bc492c0fc1
2 changed files with 27 additions and 1 deletions
|
|
@ -610,9 +610,14 @@ angular.module('ngAnimate', ['ng'])
|
|||
}
|
||||
|
||||
var animations = [];
|
||||
|
||||
//only add animations if the currently running animation is not structural
|
||||
//or if there is no animation running at all
|
||||
if(!ngAnimateState.running || !(isClassBased && ngAnimateState.structural)) {
|
||||
var allowAnimations = isClassBased ?
|
||||
!ngAnimateState.disabled && (!ngAnimateState.running || !ngAnimateState.structural) :
|
||||
true;
|
||||
|
||||
if(allowAnimations) {
|
||||
forEach(matches, function(animation) {
|
||||
//add the animation to the queue to if it is allowed to be cancelled
|
||||
if(!animation.allowCancel || animation.allowCancel(element, animationEvent, className)) {
|
||||
|
|
|
|||
|
|
@ -538,6 +538,27 @@ describe("ngAnimate", function() {
|
|||
expect(completed).toBe(true);
|
||||
}));
|
||||
|
||||
it("should skip class-based animations if animations are directly disabled on the same element", function() {
|
||||
var capture;
|
||||
module(function($animateProvider) {
|
||||
$animateProvider.register('.capture', function() {
|
||||
return {
|
||||
addClass : function(element, className, done) {
|
||||
capture = true;
|
||||
done();
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
inject(function($animate, $rootScope, $sniffer, $timeout) {
|
||||
$animate.enabled(true);
|
||||
$animate.enabled(false, element);
|
||||
|
||||
$animate.addClass(element, 'capture');
|
||||
expect(element.hasClass('capture')).toBe(true);
|
||||
expect(capture).not.toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
it("should fire the cancel/end function with the correct flag in the parameters",
|
||||
inject(function($animate, $rootScope, $sniffer, $timeout) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue