【发布时间】:2019-12-31 17:11:03
【问题描述】:
我正在尝试在 Angular 组件中使用 template 标记。
在MDN example 之后,我创建了一个类似的stackblitz example。
在原始示例中,template 标签没有子标签,但它的内容有子标签。在我的例子中,情况正好相反。模板有子,内容为空(打开控制台点击按钮查看)。
因此,尝试操作克隆的模板内容失败。
我做错了什么?
app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
click() {
const template: HTMLTemplateElement = document.querySelector('#t');
console.log(`template.childElementCount: ${template.childElementCount}`);
console.log(`template.content.childElementCount: ${template.content.childElementCount}`);
const content = document.importNode(template.content, true);
console.log(content.querySelector('.c2'));
}
}
app.component.html
<button (click)="click()">test</button>
<template id="t">
<div class="c1">
<div class="c2">{{ name }}</div>
</div>
</template>
控制台结果
【问题讨论】: