是否可以动态创建需要构造函数参数的组件?
要澄清:我使用ComponentFactory创建组件,如下所示:
const factory = this.resolver.resolveComponentFactory(MyComponent);
const componentRef: ComponentRef<MyComponent> = this.myInsertionpoint.createComponent(factory);
该组件具有一个只读字段,应该通过构造函数进行设置。
export class MyComponent {
private readonly _myField: MyField;
constructor(myField: MyField) {
this._myField = myField;
}
...
}
我知道我可以删除只读字段集 像
component.instance.myField = "myValue";
...但是我希望保留原样,因为该字段应该只 在创建组件时设置。
答案 0 :(得分:-1)
正确的语法为
export class MyComponent {
constructor(
private readonly _myField: MyField
) {}
}
这是您所写内容的简写,但与linter兼容。