From d3d20dffc1b72bf1c90d00270e9ca0aa45ef8d62 Mon Sep 17 00:00:00 2001 From: Shahar Talmi Date: Wed, 16 Apr 2014 23:59:31 +0300 Subject: [PATCH] fix(ngClass): support multiple classes in key --- src/ng/directive/ngClass.js | 2 +- test/ng/directive/ngClassSpec.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/ng/directive/ngClass.js b/src/ng/directive/ngClass.js index b00dbc666406..5d5cd140b894 100644 --- a/src/ng/directive/ngClass.js +++ b/src/ng/directive/ngClass.js @@ -106,7 +106,7 @@ function classDirective(name, selector) { var classes = [], i = 0; forEach(classVal, function(v, k) { if (v) { - classes.push(k); + classes = classes.concat(k.split(' ')); } }); return classes; diff --git a/test/ng/directive/ngClassSpec.js b/test/ng/directive/ngClassSpec.js index 3b485ba24894..ab303b109c8e 100644 --- a/test/ng/directive/ngClassSpec.js +++ b/test/ng/directive/ngClassSpec.js @@ -205,6 +205,23 @@ describe('ngClass', function() { expect(e2.hasClass('odd')).toBeTruthy(); })); + it('should allow ngClass with overlapping classes', inject(function($rootScope, $compile, $animate) { + element = $compile('
')($rootScope); + $rootScope.$digest(); + + expect(element).toHaveClass('same'); + expect(element).not.toHaveClass('yes'); + expect(element).toHaveClass('no'); + + $rootScope.$apply(function() { + $rootScope.test = true; + }); + + expect(element).toHaveClass('same'); + expect(element).toHaveClass('yes'); + expect(element).not.toHaveClass('no'); + })); + it('should allow both ngClass and ngClassOdd/Even with multiple classes', inject(function($rootScope, $compile) { element = $compile('