Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit a4cc9e1

Browse files
shahatabtford
authored andcommitted
fix(ngClass): handle index changes when an item is unshifted
Closes #7256
1 parent f8a1c56 commit a4cc9e1

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/ng/directive/ngClass.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function classDirective(name, selector) {
1919
scope.$watch('$index', function($index, old$index) {
2020
// jshint bitwise: false
2121
var mod = $index & 1;
22-
if (mod !== old$index & 1) {
22+
if (mod !== (old$index & 1)) {
2323
var classes = arrayClasses(scope.$eval(attr[name]));
2424
mod === selector ?
2525
addClasses(classes) :

test/ng/directive/ngClassSpec.js

+22
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,28 @@ describe('ngClass', function() {
274274
}));
275275

276276

277+
it('should update ngClassOdd/Even when an item is added to the model', inject(function($rootScope, $compile) {
278+
element = $compile('<ul>' +
279+
'<li ng-repeat="i in items" ' +
280+
'ng-class-odd="\'odd\'" ng-class-even="\'even\'">i</li>' +
281+
'<ul>')($rootScope);
282+
$rootScope.items = ['b','c','d'];
283+
$rootScope.$digest();
284+
285+
$rootScope.items.unshift('a');
286+
$rootScope.$digest();
287+
288+
var e1 = jqLite(element[0].childNodes[1]);
289+
var e4 = jqLite(element[0].childNodes[7]);
290+
291+
expect(e1.hasClass('odd')).toBeTruthy();
292+
expect(e1.hasClass('even')).toBeFalsy();
293+
294+
expect(e4.hasClass('even')).toBeTruthy();
295+
expect(e4.hasClass('odd')).toBeFalsy();
296+
}));
297+
298+
277299
it('should update ngClassOdd/Even when model is changed by filtering', inject(function($rootScope, $compile) {
278300
element = $compile('<ul>' +
279301
'<li ng-repeat="i in items track by $index" ' +

0 commit comments

Comments
 (0)