некоторые из моих компонентов. иметь 2 исходных параметра через конструктор.
так:
constructor(private dialog: MatDialog,
private route:ActivatedRoute,
@Inject(MAT_DIALOG_DATA) private data)
опция matDialog работает нормально, но опция маршрута (работала нормально до добавления matDialogData) терпит неудачу с:
ERROR Error: Uncaught (in promise): NullInjectorError: R3InjectorError(AppModule)[InjectionToken MatDialogData -> InjectionToken MatDialogData -> InjectionToken MatDialogData]:
NullInjectorError: No provider for InjectionToken MatDialogData!
NullInjectorError: R3InjectorError(AppModule)[InjectionToken MatDialogData -> InjectionToken MatDialogData -> InjectionToken MatDialogData]:
NullInjectorError: No provider for InjectionToken MatDialogData!
Есть ли способ настроить этот параметр @Inject(MAT_DIALOG_DATA) private data
как обнуляемый/необязательный и игнорировать эту ошибку?
вы можете использовать декоратор @Optional() следующим образом:
class SomeClass {
constructor(
private dialog: MatDialog,
private route:ActivatedRoute,
@Optional() @Inject(MAT_DIALOG_DATA) private data
) {}
}