我有一个对话框服务。我使用viewContainerRef和ComponentFactory创建对话框组件。现在,这个组件制作完成了。并且我为这个组件中的一个属性设置了一个默认值。
this.componentRef = viewContainerRef.createComponent(componentFactory);
this.componentRef.instance.data = configData;
这个组件继承自基类(带有super(。
有一个虚拟方法在我的组件中调用(从基类调用(。
我想要那个默认值,但实例还没有填充。
默认情况下,您不能访问构造函数中的输入属性。若你们还想这样做,你们可以使用注射器。
构造函数(injector:injector({};
const injector = Injector.create({
providers: [{provide: 'data', useValue: this.configData}],
parent: this.injector
})
this.componentRef = viewContainerRef.createComponent(componentFactory, {injector});
在你的组件中,你可以像这样使用它:-
constructor(@Inject('data') data: any){
// source code;
}