File tree 2 files changed +18
-1
lines changed
2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -990,7 +990,7 @@ function $CompileProvider($provide) {
990
990
directives . push ( {
991
991
priority : 100 ,
992
992
compile : valueFn ( function ( scope , element , attr ) {
993
- if ( name === 'class' ) {
993
+ if ( name === 'class' && attr [ name ] ) {
994
994
// we need to interpolate classes again, in the case the element was replaced
995
995
// and therefore the two class attrs got merged - we want to interpolate the result
996
996
interpolateFn = $interpolate ( attr [ name ] , true ) ;
Original file line number Diff line number Diff line change
1
+
1
2
'use strict' ;
2
3
3
4
describe ( '$compile' , function ( ) {
@@ -378,6 +379,15 @@ describe('$compile', function() {
378
379
expect ( element ) . toBe ( attr . $$element ) ;
379
380
}
380
381
} ) ) ;
382
+ $compileProvider . directive ( 'replaceWithInterpolatedClass' , valueFn ( {
383
+ restrict : 'CAM' ,
384
+ replace : true ,
385
+ template : '<div class="class_{{1+1}}">Replace with interpolated class!</div>' ,
386
+ compile : function ( element , attr ) {
387
+ attr . $set ( 'compiled' , 'COMPILED' ) ;
388
+ expect ( element ) . toBe ( attr . $$element ) ;
389
+ }
390
+ } ) ) ;
381
391
} ) ) ;
382
392
383
393
@@ -456,6 +466,13 @@ describe('$compile', function() {
456
466
} ) ) ;
457
467
458
468
469
+ it ( 'should handle interpolated css from replacing directive' , inject ( function ( $compile , $rootScope ) {
470
+ element = $compile ( '<div replace-with-interpolated-class></div>' ) ( $rootScope ) ;
471
+ $rootScope . $digest ( ) ;
472
+ expect ( element ) . toHaveClass ( 'class_2' ) ;
473
+ } ) ) ;
474
+
475
+
459
476
it ( 'should merge interpolated css class' , inject ( function ( $compile , $rootScope ) {
460
477
element = $compile ( '<div class="one {{cls}} three" replace></div>' ) ( $rootScope ) ;
461
478
You can’t perform that action at this time.
0 commit comments