Javascript 角度2路线检查参数是否包含有效值
我在一个angular2组件中获得了以下代码:Javascript 角度2路线检查参数是否包含有效值,javascript,angular,angular2-routing,Javascript,Angular,Angular2 Routing,我在一个angular2组件中获得了以下代码: ngOnInit() { this.route.params .switchMap((params: Params) => this.elementsService.getElement(+params['id'])) .subscribe(element => { this.elementToEdit = element; }
ngOnInit() {
this.route.params
.switchMap((params: Params) => this.elementsService.getElement(+params['id']))
.subscribe(element => {
this.elementToEdit = element;
}
);
}
此组件用于两种情况,一种是在url中提供了id
,另一种是没有提供id
。在第一种情况下,它工作正常。在第二种情况下,它可以工作,但控制台中有一个404错误:api/elements/NaN
我正在尝试修复此问题,但我找不到方法检查id
是否在url中:
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;
}
);
}
}
ngOnInit(){
如果(this.route.params['id']){我正在我的一个项目中使用它,这对我来说很好
this.route.params.subscribe((params: any) => {
if (params.id) {
// Edit your element here
} else {
// Create your new element here
}
});
我的路线是这里
{ path: "home/:id", component: HomeComponent },
我在我的一个项目中使用它,对我来说很好
this.route.params.subscribe((params: any) => {
if (params.id) {
// Edit your element here
} else {
// Create your new element here
}
});
我的路线是这里
{ path: "home/:id", component: HomeComponent },
为什么使用相同的路由可以创建两个id为的路由,一个id为的路由?是否尝试记录+params['id'的值
当提供id时?@BabarBilal我试图重复使用相同的代码来创建新元素和编辑现有元素,因此如果参数中没有id,我将创建新元素,如果有id,我将编辑现有元素。更新答案如果/否则这方面有任何问题,您只需在中执行这两个操作即可?为什么使用相同的route您可以创建两个id为一个id为一个id为一个的?您是否尝试记录+params['id'的值
当提供id时?@BabarBilal我试图重复使用相同的代码来创建新元素和编辑现有元素,因此如果参数中没有id,我将创建新元素,如果有id,我将编辑现有元素。更新答案如果/否则这有问题,您只需在中执行这两个操作即可?您将我从次要位置救了出来头痛你救了我一个小头痛