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

转载地址:https://blog.csdn.net/sky_beyond/article/details/78282432

研究ng4的官网,终于找到了我想要的方法。我想要的结果是用‘&’拼接参数传送,这样阅读上是最好的。

否则很多‘/’的拼接,容易混淆参数和组件名称。

一般我们页面跳转传递参数都是这样的格式:

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

但是在SPA单页应用中却是下面的结果居多【初级视频都是这样敷衍的】

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

那么怎么实现我说的结果呢?

重点开始了。

实现从product页面跳转到product-detail页面。 

 

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

 
  1. const routes: Routes = [

  2. {

  3. path: 'product',

  4. component: ProductComponent,

  5. },

  6. {

  7. path: 'product-detail',

  8. component: ProductDetailComponent,

  9. }

  10. ];


 

step2:在product.ts中书写跳转,并传参数。

 
  1. constructor(

  2. private router: Router, //这里需要注入Router模块

  3. ){}

  4.  
  5. jumpHandle(){

  6. //这是在html中绑定的click跳转事件

  7. this.router.navigate(['product-detail'], {

  8. queryParams: {

  9. productId: '1',

  10. title: 'moon'

  11. }

  12. });

  13. }


 

step3:在product-detail.ts中获取传递过来的参数productId、title

 
  1. constructor(

  2. private activatedRoute: ActivatedRoute, //这里需要注入ActivatedRoute模块

  3. ) {

  4. activatedRoute.queryParams.subscribe(queryParams => {

  5. let productId = queryParams.productId;

  6. let title = queryParams.title;

  7. });

  8. }



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值