X Tutup
Skip to content

Commit bb9cfe6

Browse files
committed
feat(renderer): use a comment instead of an element when stamping out <template> elements
Closes #4805 Closes #5227
1 parent 406ace9 commit bb9cfe6

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

modules/angular2/src/core/debug/debug_element_view_listener.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var _allViewsById = new Map<number, AppView>();
1919
var _nextId = 0;
2020

2121
function _setElementId(element, indices: number[]) {
22-
if (isPresent(element)) {
22+
if (isPresent(element) && DOM.isElementNode(element)) {
2323
DOM.setData(element, NG_ID_PROPERTY, indices.join(NG_ID_SEPARATOR));
2424
}
2525
}

modules/angular2/src/core/render/dom/dom_renderer.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,7 @@ export abstract class DomRenderer extends Renderer implements NodeFactory<Node>
194194

195195
dehydrateView(viewRef: RenderViewRef) { resolveInternalDomView(viewRef).dehydrate(); }
196196

197-
createTemplateAnchor(attrNameAndValues: string[]): Node {
198-
return this.createElement('script', attrNameAndValues);
199-
}
197+
createTemplateAnchor(attrNameAndValues: string[]): Node { return DOM.createComment('template'); }
200198
abstract createElement(name: string, attrNameAndValues: string[]): Node;
201199
abstract mergeElement(existing: Node, attrNameAndValues: string[]);
202200
abstract createShadowRoot(host: Node, templateId: string): Node;

modules/angular2/test/core/linker/integration_spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,19 @@ export function main() {
475475
});
476476
}));
477477

478+
it('should use a comment while stamping out `<template>` elements.',
479+
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
480+
tcb.overrideView(MyComp, new ViewMetadata({template: '<template></template>'}))
481+
482+
.createAsync(MyComp)
483+
.then((fixture) => {
484+
var childNodesOfWrapper = DOM.childNodes(fixture.debugElement.nativeElement);
485+
expect(childNodesOfWrapper.length).toBe(1);
486+
expect(DOM.isCommentNode(childNodesOfWrapper[0])).toBe(true);
487+
async.done();
488+
});
489+
}));
490+
478491
it('should support template directives via `template` attribute.',
479492
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
480493
tcb.overrideView(

modules/benchmarks/e2e_test/naive_infinite_scroll_spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ describe('ng2 naive infinite scroll benchmark', function() {
99
it('should not throw errors', function() {
1010
browser.get(URL);
1111
var expectedRowCount = 18;
12-
var expectedCellsPerRow = 28;
12+
var expectedCellsPerRow = 27;
1313
var allScrollItems = 'scroll-app #testArea scroll-item';
1414
var cells = `${ allScrollItems } .row *`;
1515
var stageButtons = `${ allScrollItems } .row stage-buttons button`;

0 commit comments

Comments
 (0)
X Tutup