angular - Hur man valfritt injicerar MAT_DIALOG_DATA i konstruktorn


Jag har skapat en komponent som heter customer-edit.component.ts. Det finns en sida som kan komma åt kundredigeringssidan. Men på en annan skärm vill jag redigera kunden utan att gå till kundsidan. Så jag använder popup genom att använda mat dialog för att uppnå det. Popupen fungerade bra, men när jag försökte komma åt skärmen via kundunderhållsskärmen istället för popupen, stötte jag på detta

StaticInjectorError(AppModule)[CustomerEditComponent -> InjectionToken MatDialogData]: StaticInjectorError(Plattform: core)[CustomerEditComponent -> InjectionToken MatDialogData]: NullInjectorError: Ingen leverantör för InjectionToken MatDialogData!

Hur kan jag valfritt injicera @Inject(MAT_DIALOG_DATA) public data: any i konstruktören i customer-edit.component.ts baserat på hur jag använder skärmens beteende för att förhindra detta fel?

Svar #1

Jag behövde också lägga till MatDialogRef i komponentleverantörerna. Exemplet ges i detta svar.

Relaterade artiklar