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

问题描述 投票:0回答:1

有没有办法动态创建需要构造函数参数的组件?

澄清一下:我使用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;
  }

...
}

我知道我可以删除readonly一个字段就像

component.instance.myField = "myValue";

...但我宁愿保留原样,因为只应在创建组件时设置字段。

angular dynamic constructor arguments components
1个回答
-1
投票

正确的语法是

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

这是你所写内容的简写,但它符合linter。

© www.soinside.com 2019 - 2024. All rights reserved.