ApplicationRef有三个作用
* 可以通过appRef.tick()来全局性调用变化检测
* 可以将视图用attachView()包含到变化检测中 用detachView()将视图移除变化检测
* 利用componentTypes和components提供了一个注册组件和组件类型的列表,和一些其他变更检测的相关信息
ApplicationRef包含对根视图的引用,可用于使用tick功能手动运行变化检测
应用之一为:如果是用根节点(root node)创建的一个动态创建组件,用attachView为其添加变化检测
addDynamicComponent() {
let factory = this.resolver.resolveComponentFactory(SimpleComponent);
let newNode = document.createElement('div');
newNode.id = 'placeholder';
document.getElementById('container').appendChild(newNode);
const ref = factory.create(this.injector, [], newNode);
this.app.attachView(ref.hostView);
}
不用ViewContainerRef,动态插入一个组件到一个特定的DOM节点 该怎么做?
译文出自这里
问题:
假定有两个空白的组件
@Component({
template: `
<div id="container">
<h1>My Component</h1>
</div>
`,
selector: 'my-app'
})
export class