Angular4.0|angular4.0中路由传递参数、获取参数最nice的写法


研究ng4的官网,终于找到了我想要的方法。我想要的结果是用‘&’拼接参数传送,这样阅读上是最好的。
否则很多‘/’的拼接,容易混淆参数和组件名称。
一般我们页面跳转传递参数都是这样的格式:
http://angular.io/api?uid=1&username=moon
但是在SPA单页应用中却是下面的结果居多【初级视频都是这样敷衍的】
http://angular.io/api/1/moon
那么怎么实现我说的结果呢?
重点开始了。
实现从product页面跳转到product-detail页面。
【Angular4.0|angular4.0中路由传递参数、获取参数最nice的写法】
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; }); }



ok,就这样完美的解决了。

    推荐阅读