我在一个angular2组件中获得了以下代码:
ngOnInit() {
this.route.params
.switchMap((params: Params) => this.elementsService.getElement(+params['id']))
.subscribe(element => {
this.elementToEdit = element;
}
);
}
此组件用于两种情况,一种是在网址中提供id
,另一种是未提供id
的情况。在第一种情况下,它工作正常。在第二个,它工作但是控制台中有一个404错误:api/elements/NaN
。
我正在努力解决这个问题,但我无法检查id
是否在网址中:
ngOnInit() {
if(this.route.params['id']){<---doesn't work
this.route.params
.switchMap((params: Params) => this.elementsService.getElement(+params['id']))
.subscribe(element => {
this.elementToEdit = element;
}
);
}
}
有没有办法做到这一点,如果id
参数不存在,请避免调用服务?
答案 0 :(得分:4)
我正在我的一个项目中使用这个工作正常
this.route.params.subscribe((params: any) => {
if (params.id) {
// Edit your element here
} else {
// Create your new element here
}
});
我的路线就是这个
{ path: "home/:id", component: HomeComponent },