From 0cd7e8f22721f62b62440bb059ae764ebbe7b42a Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Mon, 18 Nov 2013 22:13:28 -0500 Subject: fix($compile): ensure CSS classes are added and removed only when necessary When $compile interpolates a CSS class attribute expression it will do so by comparing the CSS class value already present on the element. This may lead to unexpected results when dealing with ngClass values being added and removed therefore it is best that both compile and ngClass delegate addClass/removeClass operations to the same block of code. --- test/ng/compileSpec.js | 1 - test/ng/directive/ngClassSpec.js | 2 -- 2 files changed, 3 deletions(-) (limited to 'test/ng') diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 85ee17d2..c25c5040 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -4479,7 +4479,6 @@ describe('$compile', function() { $compile(element)($rootScope); $rootScope.$digest(); - data = $animate.flushNext('removeClass'); expect(element.hasClass('fire')).toBe(true); diff --git a/test/ng/directive/ngClassSpec.js b/test/ng/directive/ngClassSpec.js index 62733c85..c7307069 100644 --- a/test/ng/directive/ngClassSpec.js +++ b/test/ng/directive/ngClassSpec.js @@ -321,7 +321,6 @@ describe('ngClass animations', function() { $rootScope.val = 'one'; $rootScope.$digest(); $animate.flushNext('addClass'); - $animate.flushNext('addClass'); expect($animate.queue.length).toBe(0); $rootScope.val = ''; @@ -428,7 +427,6 @@ describe('ngClass animations', function() { //this fires twice due to the class observer firing className = $animate.flushNext('addClass').params[1]; - className = $animate.flushNext('addClass').params[1]; expect(className).toBe('one two three'); expect($animate.queue.length).toBe(0); -- cgit v1.2.3