读取路径参数angular2

Aya*_*ane 1 components angular2-routing angular

我有两个组件,我想使用路由参数从一个变量发送到另一个.在我的第一个组件中,我使用此函数发送id:

sendId(id : string) : void {
    this.router.navigate(['/component2', id]);
}
Run Code Online (Sandbox Code Playgroud)

我的路由模块如下所示:

const routes: Routes = [
 { path: 'component2/:id', component: Component2},
 { path: '**', redirectTo: '' }
];

@NgModule({
 imports: [ RouterModule.forRoot(routes) ],
 exports: [ RouterModule ]
})

export class AppRoutingModule {}
Run Code Online (Sandbox Code Playgroud)

在我的第二个组件中,我试图像这样读取它:

import { Router, ActivatedRoute, Params } from '@angular/router';

export class Component2 implements OnInit {
   id: string;

constructor(private router: Router, private route: ActivatedRoute) {
}

ngOnInit() {
    this.route.params.subscribe(params => { this.id = +params['id']; 
    });

    console.log(this.id);
}
Run Code Online (Sandbox Code Playgroud)

但我收到一个空值.我错过了什么?

Sur*_*yan 5

因为console.log(this.id);在你从路线获得价值之前工作.把console.log进入subscribe功能

ngOnInit() {
    this.route.params.subscribe(params => { 
        this.id = +params['id']; 
        console.log(this.id);
    });  
}
Run Code Online (Sandbox Code Playgroud)