From 5c4238cd418352bcbd773d18272396c2ee9f4c34 Mon Sep 17 00:00:00 2001 From: Rado Kirov Date: Thu, 22 Jan 2015 10:26:37 -0800 Subject: [PATCH] fix(compiler): fixes a bug with top level template directives. --- modules/core/src/compiler/pipeline/view_splitter.js | 2 +- .../test/compiler/pipeline/view_splitter_spec.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/core/src/compiler/pipeline/view_splitter.js b/modules/core/src/compiler/pipeline/view_splitter.js index e1c2686b08..5cefc77e41 100644 --- a/modules/core/src/compiler/pipeline/view_splitter.js +++ b/modules/core/src/compiler/pipeline/view_splitter.js @@ -72,7 +72,7 @@ export class ViewSplitter extends CompileStep { } _addParentElement(currentElement, newParentElement) { - DOM.parentElement(currentElement).insertBefore(newParentElement, currentElement); + DOM.insertBefore(currentElement, newParentElement); DOM.appendChild(newParentElement, currentElement); } diff --git a/modules/core/test/compiler/pipeline/view_splitter_spec.js b/modules/core/test/compiler/pipeline/view_splitter_spec.js index ad936e0068..ada90da6d9 100644 --- a/modules/core/test/compiler/pipeline/view_splitter_spec.js +++ b/modules/core/test/compiler/pipeline/view_splitter_spec.js @@ -59,6 +59,18 @@ export function main() { expect(results[2].isViewRoot).toBe(true); }); + it('should work with top-level template node', () => { + var rootElement = DOM.createTemplate('
x
'); + var originalChild = rootElement.content.childNodes[0]; + var results = createPipeline().process(rootElement); + + expect(results[0].element).toBe(rootElement); + expect(results[0].isViewRoot).toBe(true); + expect(results[2].isViewRoot).toBe(true); + expect(DOM.getOuterHTML(results[0].element)).toEqual(''); + expect(results[2].element).toBe(originalChild); + }); + it('should add property bindings from the template attribute', () => { var rootElement = el('
'); var results = createPipeline().process(rootElement);