@@ -552,22 +552,32 @@ angular.module('ngMessages', [])
552552 $templateRequest ( src ) . then ( function ( html ) {
553553 if ( $scope . $$destroyed ) return ;
554554
555- $compile ( html ) ( $scope , function ( contents ) {
556- element . after ( contents ) ;
557-
558- // the anchor is placed for debugging purposes
559- var comment = $compile . $$createComment ?
560- $compile . $$createComment ( 'ngMessagesInclude' , src ) :
561- $document [ 0 ] . createComment ( ' ngMessagesInclude: ' + src + ' ' ) ;
562- var anchor = jqLite ( comment ) ;
563- element . after ( anchor ) ;
564-
565- // we don't want to pollute the DOM anymore by keeping an empty directive element
566- element . remove ( ) ;
567- } ) ;
555+ if ( isString ( html ) && ! html . trim ( ) ) {
556+ // Empty template - nothing to compile
557+ replaceElementWithMarker ( element , src ) ;
558+ } else {
559+ // Non-empty template - compile and link
560+ $compile ( html ) ( $scope , function ( contents ) {
561+ element . after ( contents ) ;
562+ replaceElementWithMarker ( element , src ) ;
563+ } ) ;
564+ }
568565 } ) ;
569566 }
570567 } ;
568+
569+ // Helpers
570+ function replaceElementWithMarker ( element , src ) {
571+ // A comment marker is placed for debugging purposes
572+ var comment = $compile . $$createComment ?
573+ $compile . $$createComment ( 'ngMessagesInclude' , src ) :
574+ $document [ 0 ] . createComment ( ' ngMessagesInclude: ' + src + ' ' ) ;
575+ var marker = jqLite ( comment ) ;
576+ element . after ( marker ) ;
577+
578+ // Don't pollute the DOM anymore by keeping an empty directive element
579+ element . remove ( ) ;
580+ }
571581 } ] )
572582
573583 /**
0 commit comments