Как связать родительский компонент, используя свойство события дочернего компонента, используя `lazy loading` в Angular 9 - PullRequest
0 голосов
/ 11 марта 2020

Я конвертирую некоторые компоненты в lazily loaded, используя ivy compiler в Angular 9.

Это мой код на данный момент:

<bulk-user-upload [visible]="bulkUserUploadVisible (fileUploaded)="onBulkUserUploadFileUploaded($event)">

и я пытаюсь изменить код так:

<ng-container #bulkUserUpload></ng-container>

Я хочу получить доступ к функции fileUploaded, которая существует в дочернем компоненте, чтобы я мог прослушивать событие в родительском компоненте.

const { BulkUserUploadComponent } = await import('../bulk-user-upload/bulk-user-upload.component');
const bulkUserUploadFactory = this.cfr.resolveComponentFactory(BulkUserUploadComponent);
const { instance } = this.bulkUserUploadContainer.createComponent(bulkUserUploadFactory, null, this.injector);

instance.visible = true;

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

1 Ответ

0 голосов
/ 11 марта 2020

Итак, я добавил это к своему родительскому компоненту

instance.fileUploaded.pipe(
      takeUntil(instance.destroy$)
    ).subscribe(resp => this.onBulkUserUploadFileUploaded(resp));

и это к дочернему элементу destroy$ = new Subject();

...