ApplicationRef не приносит все компоненты - PullRequest
0 голосов
/ 16 июня 2020

В настоящее время у меня есть служба для динамического запуска модального окна. Проблема заключается в том, что у меня есть переменная типа ApplicationRef для создания экземпляра моего ModalComponent, но в поле components отображается только основной компонент, с помощью которого создается приложение.

Чтобы дать вам представление, вот что у меня есть:

modal.service.ts

@Injectable()
export class ModalService {

  public ref: ComponentRef<ModalComponent>;
  public component$: Observable<any>;
  private componentViewContainer: ViewContainerRef;

  constructor(
    private componentFactoryResolver: ComponentFactoryResolver,
    private applicationRef: ApplicationRef,
    private injector: Injector
  ) { }

  public showModal<T>(): Observable<ModalComponent> {

    const appInstance = this.applicationRef.components[0].instance;
    const factory = this.componentFactoryResolver.resolveComponentFactory(ModalComponent);
    this.ref = appInstance.vcr.createComponent(factory);
    this.ref.changeDetectorRef.detectChanges();
    this.ref.instance._ref = this.ref;

    return <Observable<ModalComponent>>modalRef$.asObservable().map((modal: ComponentRef<ModalComponent>) => modal.instance);
    }
}

Когда я запускаю this.applicationRef.components, это только приносит мне один компонент, и он главный. Как я могу получить здесь свой ModalComponent? В моем app.module.ts тоже есть:

@NgModule({
  declarations: [
    AppComponent,
    ModalComponent
  ],
  imports: [
    ModalModule.forRoot()
  ],
  exports: [
    ModalModule
  ],
  providers: [
    ModalService,
  ],
  entryComponents: [ModalComponent],
  bootstrap: [AppComponent],
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...