在构造函数angular(无解析器)之前需要数据



我有一个对话框服务。我使用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;
}

最新更新