feat(TemplateParser): allow template elements regardless the namespace

Closes #5703
This commit is contained in:
Victor Berchet 2015-12-08 09:01:15 -08:00
parent eb0ea931d0
commit 1f35048d54
2 changed files with 12 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import {Parser, AST, ASTWithSource} from 'angular2/src/core/change_detection/cha
import {TemplateBinding} from 'angular2/src/core/change_detection/parser/ast';
import {CompileDirectiveMetadata} from './directive_metadata';
import {HtmlParser} from './html_parser';
import {splitHtmlTagNamespace} from './html_tags';
import {ParseSourceSpan, ParseError, ParseLocation} from './parse_util';
@ -215,7 +216,8 @@ class TemplateParseVisitor implements HtmlAstVisitor {
}
});
var isTemplateElement = nodeName.toLowerCase() == TEMPLATE_ELEMENT;
var lcElName = splitHtmlTagNamespace(nodeName.toLowerCase())[1];
var isTemplateElement = lcElName == TEMPLATE_ELEMENT;
var elementCssSelector = createElementCssSelector(nodeName, matchableAttrs);
var directives = this._createDirectiveAsts(
element.name, this._parseDirectives(this.selectorMatcher, elementCssSelector),

View File

@ -500,6 +500,15 @@ There is no directive with "exportAs" set to "dirA" ("<div [ERROR ->]#a="dirA"><
expect(humanizeTplAst(parse('<TEMPLATE></TEMPLATE>', [])))
.toEqual([[EmbeddedTemplateAst]]);
});
it('should create embedded templates for <template> elements regardless the namespace',
() => {
expect(humanizeTplAst(parse('<svg><template></template></svg>', [])))
.toEqual([
[ElementAst, '@svg:svg'],
[EmbeddedTemplateAst],
]);
});
});
describe('inline templates', () => {