Der CanDeactivate
-Schutz in Angular ist ein spezieller Route Guard, der dazu dient, die Navigation von der aktuellen Route zu bestätigen. Dies ermöglicht es, bestimmte Aktionen auszulösen oder Nutzereingaben zu überprüfen, bevor die Navigation zu einer anderen Seite oder Route fortgesetzt wird.
Es wird häufig in Situationen verwendet, in denen Änderungen an Daten vorgenommen wurden, die noch nicht gespeichert wurden. Stellen Sie sich zum Beispiel ein Formular vor, in das der Benutzer Informationen eingegeben hat. Wenn der Benutzer versucht, die Seite zu verlassen, bevor die Daten gespeichert wurden, kann der CanDeactivate
-Schutz dazu verwendet werden, den Benutzer zu warnen und eine eine Bestätigung zur Navigation anzufordern. Dies kann dazu beitragen, Datenverlust zu vermeiden.
Ein CanDeactivate
Guard könnte wie folgt aussehen:
import { CanDeactivate } from '@angular/router';
import { MyComponent } from './my.component';
export class CanDeactivateMyComponentGuard implements CanDeactivate<MyComponent> {
canDeactivate(component: MyComponent) {
return window.confirm("Sind Sie sicher, dass Sie die Seite verlassen möchten?");
}
}
In diesem Beispiel würde der Benutzer beim Versuch, die Seite zu verlassen, durch ein Dialogfenster gefragt, ob er die Seite wirklich verlassen möchte.
Es ist wichtig zu bemerken, dass CanDeactivate
-Schutz auf Komponentenebene und nicht auf Routenebene arbeitet. Das bedeutet, dass Sie für jede Komponente, die Sie schützen möchten, einen CanDeactivate
-Schutz definieren müssen.
Darüber hinaus bietet Angular auch weitere Routen-Schutze wie CanActivate
und CanLoad
, die weitere Kontrollmöglichkeiten beim Routing bieten. Der CanDeactivate
-Schutz ist jedoch ein leistungsfähiges Werkzeug, um die Navigation zu bestätigen und dadurch potenziellen Datenverlust zu vermeiden.