From 398691beb3fc40a481afa258d181de06ec0d153c Mon Sep 17 00:00:00 2001 From: danilsomsikov Date: Tue, 22 Jan 2013 16:59:09 +0100 Subject: fix($compile): compile replace directives in external template Passing DOMNode#childNodes to compileNodes when compiling remote template, so that directives with replace:true can be compiled. The previous version used jqLite#contents which returned collection that was not updated during the compilation. Closes #1859 --- test/ng/compileSpec.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'test') diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index a03ad929..b9ed3ff9 100644 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -702,6 +702,10 @@ describe('$compile', function() { } })); + directive('replace', valueFn({ + replace: true, + template: 'Hello, {{name}}!' + })); } )); @@ -817,6 +821,31 @@ describe('$compile', function() { )); + 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 compile template when replacing root element', + inject(function($compile, $templateCache, $rootScope) { + $rootScope.name = 'Elvis'; + element = $compile('
')($rootScope); + + $rootScope.$digest(); + + expect(sortedHtml(element)). + toEqual('Hello, Elvis!'); + })); + + it('should resolve widgets after cloning in append mode', function() { module(function($exceptionHandlerProvider) { $exceptionHandlerProvider.mode('log'); -- cgit v1.2.3