This repository was archived by the owner on Apr 12, 2024. It is now read-only.
File tree 2 files changed +19
-0
lines changed
2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -865,6 +865,7 @@ function $CompileProvider($provide) {
865
865
var srcAttr = src . $attr ,
866
866
dstAttr = dst . $attr ,
867
867
$element = dst . $$element ;
868
+
868
869
// reapply the old attributes to the new element
869
870
forEach ( dst , function ( value , key ) {
870
871
if ( key . charAt ( 0 ) != '$' ) {
@@ -874,10 +875,12 @@ function $CompileProvider($provide) {
874
875
dst . $set ( key , value , true , srcAttr [ key ] ) ;
875
876
}
876
877
} ) ;
878
+
877
879
// copy the new attributes on the old attrs object
878
880
forEach ( src , function ( value , key ) {
879
881
if ( key == 'class' ) {
880
882
safeAddClass ( $element , value ) ;
883
+ dst [ 'class' ] = ( dst [ 'class' ] ? dst [ 'class' ] + ' ' : '' ) + value ;
881
884
} else if ( key == 'style' ) {
882
885
$element . attr ( 'style' , $element . attr ( 'style' ) + ';' + value ) ;
883
886
} else if ( key . charAt ( 0 ) != '$' && ! dst . hasOwnProperty ( key ) ) {
Original file line number Diff line number Diff line change @@ -388,6 +388,14 @@ describe('$compile', function() {
388
388
expect ( element ) . toBe ( attr . $$element ) ;
389
389
}
390
390
} ) ) ;
391
+ directive ( 'replaceWithInterpolatedClass' , valueFn ( {
392
+ replace : true ,
393
+ template : '<div class="class_{{1+1}}">Replace with interpolated class!</div>' ,
394
+ compile : function ( element , attr ) {
395
+ attr . $set ( 'compiled' , 'COMPILED' ) ;
396
+ expect ( element ) . toBe ( attr . $$element ) ;
397
+ }
398
+ } ) ) ;
391
399
} ) ) ;
392
400
393
401
@@ -466,6 +474,14 @@ describe('$compile', function() {
466
474
} ) ) ;
467
475
468
476
477
+ it ( 'should handle interpolated css from replacing directive' , inject (
478
+ function ( $compile , $rootScope ) {
479
+ element = $compile ( '<div replace-with-interpolated-class></div>' ) ( $rootScope ) ;
480
+ $rootScope . $digest ( ) ;
481
+ expect ( element ) . toHaveClass ( 'class_2' ) ;
482
+ } ) ) ;
483
+
484
+
469
485
it ( 'should merge interpolated css class' , inject ( function ( $compile , $rootScope ) {
470
486
element = $compile ( '<div class="one {{cls}} three" replace></div>' ) ( $rootScope ) ;
471
487
You can’t perform that action at this time.
0 commit comments