Я нашел пример ленивой загрузки модуля с компонентом в mat-диалоге.
См. Ссылку:
На случай, если ссылка больше не доступна, я включил короткий шаг и пример, чтобы сделать это
1.Создайте ленивый загрузочный модуль
2.Создайте компонент ввода (пустой компонент) для запуска модального компонента
@Component({
template: ''
})
export class DialogEntryComponent {
constructor(public dialog: MatDialog, private router: Router,
private route: ActivatedRoute) {
this.openDialog();
}
openDialog(): void {
const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
width: '250px'
});
dialogRef.afterClosed().subscribe(result => {
this.router.navigate(['../'], { relativeTo: this.route });
});
}
}
3.Создайте маршрут для ленивого загрузочного модуля
const routes: any = [
{
path: "",
component: modalComponent(actual component with content)
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
providers: [DataResolver]
})
export class DialogEntryRoutingModule {}
4.В родительском модуле маршрутизатора укажите путь для отложенной загрузки DialogEntryModule
RouterModule.forRoot([
{
path: 'home',
component: ParentComponent,
children: [
{
path: 'dialog',
loadChildren:
"../example/entry-dialog.module#DialogEntryModule"
}
]
},
{ path: '**', redirectTo: 'home' }
])
5. В ParentComponent откройте модальное окно, указав DialogEntryModule
<button mat-raised-button routerLink="dialog">Pick one</button>