Saya harap ini akan membantu orang lain.
Pertanyaan di atas menyatakan bahwa nilai param query diperlukan setelah halaman dialihkan dan kita dapat mengasumsikan bahwa nilai snapshot (alternatif tanpa-pengamatan) akan cukup.
Tidak ada seorang pun di sini yang menyebutkan tentang snapshot.paramMap.get dari dokumentasi resmi .
this.route.snapshot.paramMap.get('id')
Jadi sebelum mengirimnya tambahkan ini dalam mengirim / mengarahkan kembali komponen:
import { Router } from '@angular/router';
kemudian arahkan kembali sebagai (didokumentasikan di sini ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
atau hanya:
this.router.navigate(['/heroes', heroId ]);
Pastikan Anda telah menambahkan ini dalam modul perutean Anda seperti yang didokumentasikan di sini :
{ path: 'hero/:id', component: HeroDetailComponent }
Dan akhirnya, di komponen Anda yang perlu menggunakan parameter kueri
tambahkan impor (didokumentasikan di sini ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
menyuntikkan ActivatedRoute
(dokumentasi juga mengimpor switchMap dan juga menyuntikkan Router dan HeroService - tetapi mereka diperlukan hanya untuk alternatif yang dapat diamati - mereka TIDAK diperlukan ketika Anda menggunakan alternatif snapshot seperti dalam kasus kami):
constructor(
private route: ActivatedRoute
) {}
CATATAN: JIKA ANDA MENAMBAHKAN MODUL ROUTING PADA MODUL FITUR (SEPERTI YANG DITUNJUKKAN DALAM DOKUMENTASI) PASTIKAN BAHWA DALAM APLIKASI. MODEL ROUTING DATANG SEBELUM AppRoutingModule (atau file lain dengan rute aplikasi level root) DI IMPOR: []. FITUR LAINNYA ROUTES TIDAK AKAN DITEMUKAN (SEPERTI MEREKA AKAN DATANG SETELAH {path: '**', redirectTo: '/ not-found'} dan Anda hanya akan melihat pesan yang tidak ditemukan).
@RouteConfig
inipath
?