8000 refactor(ngClass): remove unnecessary dependency on `$animate` · angular/angular.js@8822006 · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 8822006

Browse files
committed
refactor(ngClass): remove unnecessary dependency on $animate
1 parent b3a3ed3 commit 8822006

File tree

2 files changed

+31
-22
lines changed

2 files changed

+31
-22
lines changed

src/ng/directive/ngClass.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
function classDirective(name, selector) {
1010
name = 'ngClass' + name;
11-
return ['$animate', function($animate) {
11+
12+
return [function() {
1213
return {
1314
restrict: 'AC',
1415
link: function(scope, element, attr) {
@@ -69,12 +70,9 @@ function classDirective(name, selector) {
6970
var toRemove = arrayDifference(oldClasses, newClasses);
7071
toAdd = digestClassCounts(toAdd, 1);
7172
toRemove = digestClassCounts(toRemove, -1);
72-
if (toAdd && toAdd.length) {
73-
$animate.addClass(element, toAdd);
74-
}
75-
if (toRemove && toRemove.length) {
76-
$animate.removeClass(element, toRemove);
77-
}
73+
74+
attr.$addClass(toAdd);
75+
attr.$removeClass(toRemove);
7876
}
7977

8078
function ngClassWatchAction(newVal) {

test/ng/directive/ngClassSpec.js

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22

3-
describe('ngClass', function() {
3+
fdescribe('ngClass', function() {
44
var element;
55

66
beforeEach(module(function($compileProvider) {
@@ -244,31 +244,42 @@ describe('ngClass', function() {
244244
}));
245245

246246

247-
it('should allow ngClassOdd/Even on the same element with overlapping classes', inject(function($rootScope, $compile, $animate) {
248-
var className;
249-
250-
element = $compile('<ul><li ng-repeat="i in [0,1,2]" ng-class-odd="\'same odd\'" ng-class-even="\'same even\'"></li><ul>')($rootScope);
247+
it('should allow ngClassOdd/Even on the same element with overlapping classes',
248+
inject(function($compile, $rootScope) {
249+
element = $compile(
250+
'<ul>' +
251+
'<li ng-repeat="i in [0,1,2]" ' +
252+
'ng-class-odd="\'same odd\'" ' +
253+
'ng-class-even="\'same even\'">' +
254+
'</li>' +
255+
'<ul>')($rootScope);
251256
$rootScope.$digest();
252-
var e1 = jqLite(element[0].childNodes[1]);
253-
var e2 = jqLite(element[0].childNodes[5]);
254-
expect(e1.hasClass('same')).toBeTruthy();
255-
expect(e1.hasClass('odd')).toBeTruthy();
256-
expect(e2.hasClass('same')).toBeTruthy();
257-
expect(e2.hasClass('odd')).toBeTruthy();
257+
258+
var e1 = element.children().eq(0);
259+
var e2 = element.children().eq(1);
260+
var e3 = element.children().eq(2);
261+
262+
expect(e1).toHaveClass('same');
263+
expect(e1).toHaveClass('odd');
264+
expect(e1).not.toHaveClass('even');
265+
expect(e2).toHaveClass('same');
266+
expect(e2).not.toHaveClass('odd');
267+
expect(e2).toHaveClass('even');
268+
expect(e3).toHaveClass('same');
269+
expect(e3).toHaveClass('odd');
270+
expect(e3).not.toHaveClass('even');
258271
})
259272
);
260273

261-
it('should allow ngClass with overlapping classes', inject(function($rootScope, $compile, $animate) {
274+
it('should allow ngClass with overlapping classes', inject(function($rootScope, $compile) {
262275
element = $compile('<div ng-class="{\'same yes\': test, \'same no\': !test}"></div>')($rootScope);
263276
$rootScope.$digest();
264277

265278
expect(element).toHaveClass('same');
266279
expect(element).not.toHaveClass('yes');
267280
expect(element).toHaveClass('no');
268281

269-
$rootScope.$apply(function() {
270-
$rootScope.test = true;
271-
});
282+
$rootScope.$apply('test = true');
272283

273284
expect(element).toHaveClass('same');
274285
expect(element).toHaveClass('yes');

0 commit comments

Comments
 (0)
0