góc 4 - Giải pháp để giải quyết các Trật tự của các tham số tùy chọn:
DO NÀY:
const appRoutes: Routes = [
{path: '', component: HomeComponent},
{path: 'products', component: ProductsComponent},
{path: 'products/:id', component: ProductsComponent}
]
Lưu ý rằng products
và products/:id
tuyến đường được đặt tên giống hệt nhau. Angular 4 sẽ theo dõi một cách chính xác products
cho các tuyến đường không có tham số và nếu có thông số, nó sẽ theo sau products/:id
.
Tuy nhiên, đường dẫn cho tuyến đường không thông số products
phải không có dấu gạch chéo, nếu không góc sẽ xử lý không chính xác nó như một đường dẫn tham số. Vì vậy, trong trường hợp của tôi, tôi đã có dấu gạch chéo cho các sản phẩm và nó không hoạt động.
XIN ĐỪNG LÀM THẾ:
...
{path: 'products/', component: ProductsComponent},
{path: 'products/:id', component: ProductsComponent},
...
Sửa lỗi nếu tôi sai, nhưng giải pháp này chỉ hoạt động khi thứ tự các tuyến trong mảng bị đảo ngược, tức là tuyến đường có tham số xảy ra trước khi tuyến kia xảy ra. Cho đến khi tôi làm điều đó, router chỉ khớp với tuyến mà không có tham số. –
@Aviad P Thứ tự không quan trọng đối với tôi khi tôi gọi là 'router.navigate (['/user ', {id: 2}]); ', nhưng nó _did_ là vấn đề khi tôi gọi' router.navigate (['/user ', 2]); '. Trong trường hợp thứ hai, tuyến đường có tham số ID cần được xác định trước tuyến đường mà không có bất kỳ tham số nào. – reduckted
giải pháp này vẫn áp dụng? Tôi nhận thấy việc chuyển từ "Người dùng" sang "Người dùng mới" sẽ tái khởi tạo thành phần 'Người dùng' – teleaziz