使用构造函数参数创建动态组件

时间:2019-02-13 13:43:27

标签: angular dynamic constructor arguments components

是否可以动态创建需要构造函数参数的组件?

要澄清:我使用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";

...但是我希望保留原样,因为该字段应该只 在创建组件时设置。

1 个答案:

答案 0 :(得分:-1)

正确的语法为

export class MyComponent {
  constructor(
    private readonly _myField: MyField
  ) {}
}

这是您所写内容的简写,但与linter兼容。