如何将参数传递给angular2.0中的路由

时间:2016-08-02 05:40:56

标签: typescript angular

我正在尝试使用路线参数而不能实现它,因为当我导入Routeparams时它显示错误,

我的模板,

    <h6 class="headingh6 nobottommargin"><a [routerLink]="['User',{{detail.firstname}}]">  {{detail.firstname}} </a></h6>

我的组件

import { Component,OnInit} from '@angular/core';
import { Route, RouteSegment, ROUTER_DIRECTIVES } from '@angular/router';

@Component({
selector: 'User', 
templateUrl: './components/society/society.html',
Directives: [ROUTER_DIRECTIVES]
})
export class User  {
id:any;
 constructor(routeSegment: RouteSegment) {
   this.id = routeSegment.getParam('id'); 
   console.log(this.id);   
 }
}

有人可以帮助我

我的路线

   import {provideRouter, RouterConfig} from '@angular/router';

  import {DemoPage} from './demo-page';

  import {User} from './components/user/user';


   export const routes: RouterConfig = [
   { path: '', redirectTo: '/login', terminal: true },
   { path: 'login', component:Login },
   { path: 'signup', component:SignUp },
   { path: 'demo', component: DemoPage, children: [
     { path: 'user', component:User },
     { path: 'requests', component:Requests },
   ]}
];

 export const APP_ROUTER_PROVIDERS = [
    provideRouter(routes)


  ];

2 个答案:

答案 0 :(得分:2)

<h6 class="headingh6 nobottommargin"><a [routerLink]="['User',detail.firstname]">{{detail.firstname}}</a></h6>

不要将[]{{}}一起使用。两者中的任何一个,但不是两个同时。

使用

获取路由器参数
constructor(private route: ActivatedRoute) {
  route.routerState.params.subscribe(p => console.log(p['id'));
}

另见Get route query params

答案 1 :(得分:2)

您是否只想阅读Querystring参数?

如果是,请使用此

constructor(private route: ActivatedRoute) {
      console.log(this.route.snapshot.params.id);
   }

在导入中你需要这个:

import { ActivatedRoute } from '@angular/router';

当然,如果在路线配置中有/:id

,这将有效