@@ -13,8 +13,16 @@ function classDirective(name, selector) {
13
13
return {
14
14
restrict : 'AC' ,
15
15
link : function ( scope , element , attr ) {
16
+ var classCounts = element . data ( '$classCounts' ) ;
16
17
var oldVal ;
17
18
19
+ if ( ! classCounts ) {
20
+ // Use createMap() to prevent class assumptions involving property
21
+ // names in Object.prototype
22
+ classCounts = createMap ( ) ;
23
+ element . data ( '$classCounts' , classCounts ) ;
24
+ }
25
+
18
26
if ( name !== 'ngClass' ) {
19
27
scope . $watch ( '$index' , function ( $index , old$index ) {
20
28
/* eslint-disable no-bitwise */
@@ -44,10 +52,8 @@ function classDirective(name, selector) {
44
52
}
45
53
46
54
function digestClassCounts ( classes , count ) {
47
- // Use createMap() to prevent class assumptions involving property
48
- // names in Object.prototype
49
- var classCounts = element . data ( '$classCounts' ) || createMap ( ) ;
50
55
var classesToUpdate = [ ] ;
56
+
51
57
forEach ( classes , function ( className ) {
52
58
if ( count > 0 || classCounts [ className ] ) {
53
59
classCounts [ className ] = ( classCounts [ className ] || 0 ) + count ;
@@ -56,7 +62,7 @@ function classDirective(name, selector) {
56
62
}
57
63
}
58
64
} ) ;
59
- element . data ( '$classCounts' , classCounts ) ;
65
+
60
66
return classesToUpdate . join ( ' ' ) ;
61
67
}
62
68
0 commit comments