angular4.0在路由Router时传递参数、获取参数的最灵活、阅读性最好的写法。

来源:互联网 发布:java中switch是什么 编辑:程序博客网 时间:2024/06/01 07:26

研究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.navigateByUrl('product-detail' + '?productId=8&title=moon');}

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

constructor(  private activatedRoute: ActivatedRoute,   //这里需要注入ActivatedRoute模块) {}ngOnInit() {  let productId = this.activatedRoute.queryParams['_value']['productId'];  let title = this.activatedRoute.queryParams['_value']['title'];}

ok,就这样完美的解决了。谢谢大婶的指教和点评。

原创粉丝点击