diff --git a/src/ng/compile.js b/src/ng/compile.js index 5026283ef516..fb7b116d6872 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -936,7 +936,7 @@ function $CompileProvider($provide) { directives.unshift(derivedSyncDirective); afterTemplateNodeLinkFn = applyDirectivesToNode(directives, $compileNode, tAttrs, childTranscludeFn); - afterTemplateChildLinkFn = compileNodes($compileNode.contents(), childTranscludeFn); + afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn); while(linkQueue.length) { diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 5b644af9f75c..7f586c9d42e7 100644 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -627,6 +627,11 @@ describe('$compile', function() { } })); + directive('replace', valueFn({ + restrict:'CAM', + replace: true, + template: 'Hello, {{name}}!' + })); } )); @@ -732,6 +737,19 @@ describe('$compile', function() { toEqual('
Hello, Elvis!
'); } )); + + + it('should compile template when replacing element in another template', + inject(function($compile, $templateCache, $rootScope) { + $templateCache.put('hello.html', '
'); + $rootScope.name = 'Elvis'; + element = $compile('
')($rootScope); + + $rootScope.$digest(); + + expect(sortedHtml(element)). + toEqual('
Hello, Elvis!
'); + })); it('should resolve widgets after cloning in append mode', function() {