fix(HtmlParser): allow ng-content elements regardless the namespace
relates to #5547 Closes #5745
This commit is contained in:
parent
7c13372721
commit
080469f8e6
|
@ -1,5 +1,6 @@
|
||||||
import {HtmlElementAst} from './html_ast';
|
import {HtmlElementAst} from './html_ast';
|
||||||
import {isBlank, isPresent} from 'angular2/src/facade/lang';
|
import {isBlank, isPresent} from 'angular2/src/facade/lang';
|
||||||
|
import {splitNsName} from './html_tags';
|
||||||
|
|
||||||
const NG_CONTENT_SELECT_ATTR = 'select';
|
const NG_CONTENT_SELECT_ATTR = 'select';
|
||||||
const NG_CONTENT_ELEMENT = 'ng-content';
|
const NG_CONTENT_ELEMENT = 'ng-content';
|
||||||
|
@ -31,7 +32,7 @@ export function preparseElement(ast: HtmlElementAst): PreparsedElement {
|
||||||
selectAttr = normalizeNgContentSelect(selectAttr);
|
selectAttr = normalizeNgContentSelect(selectAttr);
|
||||||
var nodeName = ast.name.toLowerCase();
|
var nodeName = ast.name.toLowerCase();
|
||||||
var type = PreparsedElementType.OTHER;
|
var type = PreparsedElementType.OTHER;
|
||||||
if (nodeName == NG_CONTENT_ELEMENT) {
|
if (splitNsName(nodeName)[1] == NG_CONTENT_ELEMENT) {
|
||||||
type = PreparsedElementType.NG_CONTENT;
|
type = PreparsedElementType.NG_CONTENT;
|
||||||
} else if (nodeName == STYLE_ELEMENT) {
|
} else if (nodeName == STYLE_ELEMENT) {
|
||||||
type = PreparsedElementType.STYLE;
|
type = PreparsedElementType.STYLE;
|
||||||
|
|
|
@ -106,6 +106,15 @@ export function main() {
|
||||||
expect(humanizeTplAst(parsed)).toEqual([[NgContentAst]]);
|
expect(humanizeTplAst(parsed)).toEqual([[NgContentAst]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should parse ngContent regardless the namespace', () => {
|
||||||
|
var parsed = parse('<svg><ng-content></ng-content></svg>', []);
|
||||||
|
expect(humanizeTplAst(parsed))
|
||||||
|
.toEqual([
|
||||||
|
[ElementAst, '@svg:svg'],
|
||||||
|
[NgContentAst],
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
it('should parse bound text nodes', () => {
|
it('should parse bound text nodes', () => {
|
||||||
expect(humanizeTplAst(parse('{{a}}', []))).toEqual([[BoundTextAst, '{{ a }}']]);
|
expect(humanizeTplAst(parse('{{a}}', []))).toEqual([[BoundTextAst, '{{ a }}']]);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue