Tôi hy vọng nó sẽ giúp người khác.
Câu hỏi ở trên nói rằng giá trị param truy vấn là cần thiết sau khi trang đã được chuyển hướng và chúng tôi có thể giả định rằng giá trị ảnh chụp nhanh (thay thế không thể quan sát) là đủ.
Không ai ở đây đề cập đến snapshot.paramMap.get từ tài liệu chính thức .
this.route.snapshot.paramMap.get('id')
Vì vậy, trước khi gửi, hãy thêm phần này vào thành phần gửi / chuyển hướng:
import { Router } from '@angular/router';
sau đó chuyển hướng lại thành một trong hai (tài liệu ở đây ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
hoặc đơn giản:
this.router.navigate(['/heroes', heroId ]);
Hãy chắc chắn rằng bạn đã thêm phần này vào mô-đun định tuyến của mình như được ghi lại ở đây :
{ path: 'hero/:id', component: HeroDetailComponent }
Và cuối cùng, trong thành phần của bạn cần sử dụng tham số truy vấn
thêm nhập khẩu (tài liệu ở đây ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
tiêm ActivatedRoute
(tài liệu cũng nhập switchMap và cũng tiêm Router và HeroService - nhưng chúng chỉ cần cho thay thế có thể quan sát được - chúng KHÔNG cần thiết khi bạn sử dụng thay thế ảnh chụp nhanh như trong trường hợp của chúng tôi):
constructor(
private route: ActivatedRoute
) {}
LƯU Ý: NẾU BẠN THÊM ROUTING-MODULE ĐẾN MỘT MODU ĐẶC ĐIỂM (NHƯ ĐƯỢC HIỂN THỊ TRONG TÀI LIỆU) HÃY ĐẢM BẢO R APPNG TRONG APP.MODULE.ts R MODNG MODULE ROUTING TRƯỚC KHI AppRoutingModule (hoặc tệp khác với các ứng dụng gốc). CÁC ĐƯỜNG TÍNH NĂNG KHÁC SILL KHÔNG ĐƯỢC TÌM KIẾM (NHƯ VẬY NÊN KẾT THÚC SAU {path: '**', redirectTo: '/ not-find'} và bạn sẽ chỉ thấy tin nhắn không tìm thấy).
@RouteConfigcho điều nàypath?