Angular — использование способа вызова функции для компонента, созданного динамически с использованием ng-dynamic-component

Я использую пакет npm ng-dynamic-component для создания динамических компонентов.

Я нахожусь в ситуации, когда я хочу вызвать определенную функцию для динамически созданного компонента, используя этот пакет.

Я экспериментировал с множеством разных способов, но пока не нашел решения.

Кто-нибудь знает, можно ли вызвать функцию для компонента, который создается динамически с использованием упомянутого пакета?

Спасибо :)


person Diemauerdk    schedule 30.04.2019    source источник


Ответы (1)


ng-dynamic-component имеет «событие создания компонента» ndcDynamicCreated, которое передает ComponentRef<any> в качестве параметра.

Из документов:

@Component({
  selector: 'my-component',
  template: `<ndc-dynamic [ndcDynamicComponent]="component"
                          (ndcDynamicCreated)="componentCreated($event)"
                          ></ndc-dynamic>`
})
class MyComponent {
  component = MyDynamicComponent1;
  componentCreated(compRef: ComponentRef<any>) {
    // utilize compRef in some way ...
  }
}

Использование compRef каким-либо образом будет вызывать функцию свойства compRef.instance в вашем случае.

person Markus Dresch    schedule 30.04.2019
comment
Я проверил это и могу подтвердить, что на сгенерированном компоненте я могу взять .instance, а затем вызвать функцию для динамически созданного компонента. Спасибо! - person Diemauerdk; 30.04.2019