Angular2 this.route.params.map

Angular2 this.route.params.map,angular,angular2-routing,Angular,Angular2 Routing,Angular2我是惰性加载模块并设置子路由,如下所示 constructor(private route: ActivatedRoute, private programService:ProgramService) { this.route.params .map(params => params['id']) .switchMap(id => this.programService.getProgramById(id))

Angular2我是惰性加载模块并设置子路由,如下所示

constructor(private route: ActivatedRoute, private programService:ProgramService) {

    this.route.params
        .map(params => params['id'])
        .switchMap(id => this.programService.getProgramById(id))
        .subscribe(program => this.model = program);
}
模块中.ts

const routes: Routes = [
    { path: '', component: ProgramsComponent},
    { path: 'create/:id', component: CreateProgramComponent}

];
这里是利用“创建”路线的链接

我得到以下错误,任何帮助是感激的

core.umd.js:3462 EXCEPTION: Uncaught (in promise): TypeError: this.route.params.map is not a function
TypeError: this.route.params.map is not a function

添加以下两行:

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';
RxJs由一个接一个的操作员引入,以确保您只加载所需的内容。
在您的情况下,您使用两个运算符
map
switchMap

尝试
将rxjs/add/operator/map导入文件
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';