Week 04 · Day 05 — 帶參數的路由
學習目標
- 定義帶動態參數的路由
user/:id - 用
ActivatedRoute讀取 URL 參數 - 用
Router程式化導覽
重點
定義帶參數路由
const routes: Routes = [
{ path: 'user/:id', component: UserComponent },
{ path: 'product/:id', component: ProductComponent }
];
:id 是動態片段,/user/123 的 id 就是 123
在元件讀取參數
import { ActivatedRoute } from '@angular/router';
@Component({ ... })
export class UserComponent {
userId: string = "";
constructor(private route: ActivatedRoute) {
this.route.params.subscribe(params => {
this.userId = params['id'];
});
}
}
ActivatedRoute 提供目前路由資訊
- params.subscribe(...) 訂閱參數變化(跳轉到別的使用者也會更新)
運用參數導覽
<a [routerLink]="['/user', user.id]">{{ user.name }}</a>
程式化導覽
constructor(private router: Router) {}
goToUser(id: string): void {
this.router.navigate(['/user', id]);
}
實作
- 定義
user/:id路由並建立UserComponent - 用
ActivatedRoute.params顯示id - 用
[routerLink]或router.navigate()跳轉
作業
- 建立一個
user/:id帶參數路由 - 用
ActivatedRoute讀取並顯示id - 用
router.navigate()做一次程式化跳轉