fix(HtmlParser): do not add required parents to template root elements
fixes #5967
This commit is contained in:
parent
9ba400d7d5
commit
e484c62a8d
|
@ -266,7 +266,7 @@ class TreeBuilder {
|
||||||
const tagDef = getHtmlTagDefinition(el.name);
|
const tagDef = getHtmlTagDefinition(el.name);
|
||||||
const {parent, container} = this._getParentElementSkippingContainers();
|
const {parent, container} = this._getParentElementSkippingContainers();
|
||||||
|
|
||||||
if (tagDef.requireExtraParent(isPresent(parent) ? parent.name : null)) {
|
if (isPresent(parent) && tagDef.requireExtraParent(parent.name)) {
|
||||||
var newParent = new HtmlElementAst(
|
var newParent = new HtmlElementAst(
|
||||||
tagDef.parentToAdd, [], [], el.sourceSpan, el.startSourceSpan, el.endSourceSpan);
|
tagDef.parentToAdd, [], [], el.sourceSpan, el.startSourceSpan, el.endSourceSpan);
|
||||||
this._insertBeforeContainer(parent, container, newParent);
|
this._insertBeforeContainer(parent, container, newParent);
|
||||||
|
|
|
@ -36,7 +36,6 @@ export function main() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
describe('elements', () => {
|
describe('elements', () => {
|
||||||
it('should parse root level elements', () => {
|
it('should parse root level elements', () => {
|
||||||
expect(humanizeDom(parser.parse('<div></div>', 'TestComp'))).toEqual([
|
expect(humanizeDom(parser.parse('<div></div>', 'TestComp'))).toEqual([
|
||||||
|
@ -158,6 +157,13 @@ export function main() {
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// https://github.com/angular/angular/issues/5967
|
||||||
|
it('should not add the requiredParent to a template root element', () => {
|
||||||
|
expect(humanizeDom(parser.parse('<tr></tr>', 'TestComp'))).toEqual([
|
||||||
|
[HtmlElementAst, 'tr', 0],
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
it('should support explicit mamespace', () => {
|
it('should support explicit mamespace', () => {
|
||||||
expect(humanizeDom(parser.parse('<myns:div></myns:div>', 'TestComp'))).toEqual([
|
expect(humanizeDom(parser.parse('<myns:div></myns:div>', 'TestComp'))).toEqual([
|
||||||
[HtmlElementAst, ':myns:div', 0]
|
[HtmlElementAst, ':myns:div', 0]
|
||||||
|
|
Loading…
Reference in New Issue