Heim >Web-Frontend >js-Tutorial >Wie kann verhindert werden, dass bestimmte Routen mithilfe der ShouldDetach-Methode von RouteReuseStrategy in Angular 2 gespeichert werden?
Routing ist ein wesentlicher Bestandteil jeder Single-Page-Anwendung, und die Routing-Funktionen von Angular 2 sind recht leistungsstark. Eine der nützlichsten Funktionen des Angular 2-Routers ist die Möglichkeit, den Status einer Route zu speichern, damit er später wiederverwendet werden kann. Dies erfolgt durch die Implementierung der RouteReuseStrategy-Schnittstelle.
Die RouteReuseStrategy-Schnittstelle verfügt über eine Reihe von Methoden, die implementiert werden können, um anzupassen, wie Routen gespeichert und wiederverwendet werden. Eine der wichtigsten Methoden ist ShouldDetach, mit der bestimmt wird, ob eine Route gespeichert werden soll, wenn der Benutzer sie verlässt.
Standardmäßig speichert Angular 2 den Status aller Routen, die gespeichert werden navigiert zu. Es kann jedoch vorkommen, dass Sie die Speicherung bestimmter Routen verhindern möchten. Beispielsweise möchten Sie möglicherweise nicht den Status einer Route speichern, die einen modalen Dialog oder einen Ladebildschirm anzeigt.
Um zu verhindern, dass eine Route gespeichert wird, können Sie die Methode ShouldDetach implementieren und false zurückgeben. Dadurch wird Angular 2 angewiesen, den Status der Route nicht zu speichern, wenn der Benutzer von der Route weg navigiert.
Hier ist ein Beispiel für die Implementierung der Methode ShouldDetach:
<code class="typescript">import { Injectable } from '@angular/core'; import { RouteReuseStrategy, DetachedRouteHandle } from '@angular/router'; @Injectable() export class CustomRouteReuseStrategy implements RouteReuseStrategy { shouldDetach(route: ActivatedRouteSnapshot): boolean { // Return `false` to prevent this route from being stored. return false; } store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {} shouldAttach(route: ActivatedRouteSnapshot): boolean { return false; } retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { return null; } shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { return false; } }</code>
Zur Verwendung Diese benutzerdefinierte Strategie zur Routenwiederverwendung können Sie wie folgt in Ihrem NgModule bereitstellen:
<code class="typescript">import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { AppComponent } from './app.component'; import { CustomRouteReuseStrategy } from './custom-route-reuse-strategy'; @NgModule({ declarations: [ AppComponent ], imports: [ RouterModule.forRoot([ { path: '', component: AppComponent } ], { useHash: true }) ], providers: [ { provide: RouteReuseStrategy, useClass: CustomRouteReuseStrategy } ], bootstrap: [AppComponent] }) export class AppModule {}</code>
Jetzt wird die Methode ShouldDetach Ihrer benutzerdefinierten Strategie zur Routenwiederverwendung immer dann aufgerufen, wenn der Benutzer eine Route verlässt. Mit dieser Methode können Sie bestimmen, ob die Route gespeichert werden soll oder nicht.
Das obige ist der detaillierte Inhalt vonWie kann verhindert werden, dass bestimmte Routen mithilfe der ShouldDetach-Methode von RouteReuseStrategy in Angular 2 gespeichert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!