Skip to content

Commit 5c4238c

Browse files
committed
fix(compiler): fixes a bug with top level template directives.
1 parent b4338b6 commit 5c4238c

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

modules/core/src/compiler/pipeline/view_splitter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ export class ViewSplitter extends CompileStep {
7272
}
7373

7474
_addParentElement(currentElement, newParentElement) {
75-
DOM.parentElement(currentElement).insertBefore(newParentElement, currentElement);
75+
DOM.insertBefore(currentElement, newParentElement);
7676
DOM.appendChild(newParentElement, currentElement);
7777
}
7878

modules/core/test/compiler/pipeline/view_splitter_spec.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,18 @@ export function main() {
5959
expect(results[2].isViewRoot).toBe(true);
6060
});
6161

62+
it('should work with top-level template node', () => {
63+
var rootElement = DOM.createTemplate('<div template>x</div>');
64+
var originalChild = rootElement.content.childNodes[0];
65+
var results = createPipeline().process(rootElement);
66+
67+
expect(results[0].element).toBe(rootElement);
68+
expect(results[0].isViewRoot).toBe(true);
69+
expect(results[2].isViewRoot).toBe(true);
70+
expect(DOM.getOuterHTML(results[0].element)).toEqual('<template><template></template></template>');
71+
expect(results[2].element).toBe(originalChild);
72+
});
73+
6274
it('should add property bindings from the template attribute', () => {
6375
var rootElement = el('<div><div template="prop:expr"></div></div>');
6476
var results = createPipeline().process(rootElement);

0 commit comments

Comments
 (0)