Создать динамический компонент с аргументами конструктора - PullRequest
0 голосов
/ 13 февраля 2019

Есть ли способ динамически создать компонент, который требует аргументов конструктора?

Чтобы уточнить: я создаю компонент с помощью 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 голосов
/ 13 февраля 2019

Правильный синтаксис:

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

Это сокращение от того, что вы написали, но оно соответствует линтеру.

...