【发布时间】:2020-03-22 11:56:25
【问题描述】:
我发现 Angular Docs 建议为了访问 ViewContainerRef 来创建动态组件,我应该使用如下指令:
import { Directive, ViewContainerRef } from '@angular/core';
@Directive({
selector: '[ad-host]',
})
export class AdDirective {
constructor(public viewContainerRef: ViewContainerRef) { }
}
然后在组件中:
export class AppComponent {
@ViewChild(AdDirective, {static: true}) adHost: AdDirective;
... //to get access to ViewContainerRef
const viewContainerRef = this.adHost.viewContainerRef;
但是,如果没有指令,我可以通过使用 ViewChild 和 {read : ViewContainerRef} 来实现相同的效果,例如:
export class AppComponent {
@ViewChild('someHashTag', {read : ViewContainerRef}) target: ViewContainerRef;
这两种方法之间是否存在任何差异(可能的问题),或者我为什么不应该使用需要较少代码和工作量的方法?
【问题讨论】:
标签: angular typescript angular-components