Bagaimana untuk menghalang laluan tertentu daripada disimpan menggunakan kaedah RouteReuseStrategy\'s ​​shouldDetach dalam Angular 2?

Mary-Kate Olsen
Lepaskan: 2024-10-25 06:40:02
asal
549 orang telah melayarinya

How to prevent specific routes from being stored using RouteReuseStrategy's shouldDetach method in Angular 2?

Cara melaksanakan RouteReuseStrategy's shouldDetach untuk laluan tertentu dalam Angular 2

Penghalaan ialah bahagian penting dalam mana-mana aplikasi satu halaman, dan keupayaan penghalaan Angular 2 agak berkuasa. Salah satu ciri yang paling berguna penghala Angular 2 ialah keupayaan untuk menyimpan keadaan laluan supaya ia boleh digunakan semula kemudian. Ini dilakukan dengan melaksanakan antara muka RouteReuseStrategy.

Antara muka RouteReuseStrategy mempunyai beberapa kaedah yang boleh dilaksanakan untuk menyesuaikan cara laluan disimpan dan digunakan semula. Salah satu kaedah yang paling penting ialah shouldDetach, yang digunakan untuk menentukan sama ada laluan perlu disimpan atau tidak apabila pengguna menavigasi keluar daripadanya.

Secara lalai, Angular 2 akan menyimpan keadaan semua laluan yang dilayari ke. Walau bagaimanapun, mungkin ada masa anda ingin menghalang laluan tertentu daripada disimpan. Sebagai contoh, anda mungkin tidak mahu menyimpan keadaan laluan yang memaparkan dialog modal atau skrin pemuatan.

Untuk mengelakkan laluan daripada disimpan, anda boleh melaksanakan kaedah shouldDetach dan mengembalikan palsu. Ini akan memberitahu Angular 2 untuk tidak menyimpan keadaan laluan apabila pengguna menavigasi jauh daripadanya.

Berikut ialah contoh cara melaksanakan kaedah 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>
Salin selepas log masuk

Untuk menggunakan strategi penggunaan semula laluan tersuai ini, anda boleh menyediakannya dalam NgModule anda seperti ini:

<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>
Salin selepas log masuk

Sekarang, kaedah shouldDetach bagi strategi penggunaan semula laluan tersuai anda akan dipanggil apabila pengguna menavigasi keluar dari laluan. Anda boleh menggunakan kaedah ini untuk menentukan sama ada laluan itu perlu disimpan atau tidak.

Atas ialah kandungan terperinci Bagaimana untuk menghalang laluan tertentu daripada disimpan menggunakan kaedah RouteReuseStrategy\'s ​​shouldDetach dalam Angular 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!