1. 程式人生 > >angular4.0中路由傳遞引數、獲取引數

angular4.0中路由傳遞引數、獲取引數

研究ng4的官網,終於找到了我想要的方法。我想要的結果是用‘&’拼接引數傳送,這樣閱讀上是最好的。

否則很多‘/’的拼接,容易混淆引數和元件名稱。

一般我們頁面跳轉傳遞引數都是這樣的格式:

http://angular.io/api?uid=1&username=moon

但是在SPA單頁應用中卻是下面的結果居多【初級視訊都是這樣敷衍的】

http://angular.io/api/1/moon

那麼怎麼實現我說的結果呢?

重點開始了。

實現從product頁面跳轉到product-detail頁面。 

step1:在app-routing.module.ts中配置路由。

const routes: Routes = [
{
    path: 'product',
    component: ProductComponent,
 },
 {
    path: 'product-detail',
    component: ProductDetailComponent,
  }
];
step2:在product.ts中書寫跳轉,並傳引數。

constructor(
    private router: Router,   //這裡需要注入Router模組
){}
 
jumpHandle(){
    //這是在html中繫結的click跳轉事件
    this.router.navigate(['product-detail'], {
        queryParams: {
            productId: '1',
            title: 'moon'
        }
    });
}
step3:在product-detail.ts中獲取傳遞過來的引數productId、title

constructor(
    private activatedRoute: ActivatedRoute,   //這裡需要注入ActivatedRoute模組
) {
    activatedRoute.queryParams.subscribe(queryParams => {
        let productId = queryParams.productId;
        let title = queryParams.title;
    });
}