У меня есть компонент, который прекрасно работает сам по себе, но не работает как диалог.
Когда я использую DI для ввода dialogRef и MAT_DIALOG_DATA
constructor(
public dialogRef: MatDialogRef<ChannelsComponent>,
@Inject(MAT_DIALOG_DATA) private data: any
) { }
работает только как диалог, но перестает работать сам по себе. Когда я пытаюсь сделать этот компонент без диалога, я получаю:
StaticInjectorError (AppModule)
Итак, он работает, но только в одной роли - либо как отдельный компонент, либо как диалог, но не одновременно.
Вопрос заключается в следующем: можем ли мы использовать один и тот же угловой компонент как диалог и сам по себе (без диалога) одновременно?
UPDATE:
Упрощенные версии:
https://stackblitz.com/edit/angular-kg32ui - работает только как диалог, не работает, если нажать на меню «Каналы»
https://stackblitz.com/edit/angular-sr9b8h - работает как компонент и диалог, но не предоставляет данные для диалога
Единственное отличие в 'channel.component.ts' в том, что в 1-й версии эти сервисы внедрены в конструктор:
constructor(
public dialogRef: MatDialogRef<ChannelsComponent>,
@Inject(MAT_DIALOG_DATA) private data: any
) { }