angular материал, показать диалог из медленно загружаемого компонента

У меня есть ленивый загружаемый модуль с именем account. В account есть RegisterComponent и RegisterDialogComponent.

Я хочу показать диалог от AccountModule.RegisterDialogComponent в AppModule.AppComponent. Для тестирования.

RegisterDialogComponent объявлен и во входных компонентах в AccountModule.

Если я добавлю AccountModule к импорту AppModule, он работает, но этот AccountModule больше не загружается лениво.

У меня вопрос: как открыть диалог с контентом из ленивого загруженного модуля? Это вообще возможно?


person Community    schedule 13.12.2019    source источник
comment
модальное окно должно быть в общем модуле, если вы делитесь через приложение   -  person Mustafa    schedule 13.12.2019
comment
Значит, невозможно показать диалог из ленивого загруженного модуля? Общий модуль загружается не лениво.   -  person    schedule 13.12.2019
comment
Либо вы создаете это модальное окно в своем текущем модуле, либо если вы используете его в разных приложениях, вы не можете   -  person Mustafa    schedule 13.12.2019
comment
хорошо спасибо за ответ   -  person    schedule 14.12.2019


Ответы (1)


Это невозможно, по крайней мере, я не знаю как.

Обходной путь заключается в том, чтобы все, что касается диалогового окна и компонентов, находилось в собственном модуле, то есть в той же области. Однако это по-прежнему не позволит открыть диалоговое окно из внешнего модуля, если этот модуль учетной записи загружен лениво. Но это позволит открыть диалог в ленивом загруженном модуле из ленивого загруженного модуля. В долгосрочной перспективе функции учетной записи являются основной частью приложения, и, как бы мне этого ни хотелось, они должны быть включены в исходную массу загружаемых js-файлов.

Обратите внимание, что даже при ленивой загрузке вы должны добавить свой локальный DialogService к поставщикам, даже если он @Injectable({providedIn: 'root'}). И, конечно же, DialogComponent должен быть в entryComponents.

person Community    schedule 14.12.2019