Javascript 角度2路线检查参数是否包含有效值

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; }

我在一个angular2组件中获得了以下代码:

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,我将编辑现有元素。更新答案如果/否则这有问题,您只需在中执行这两个操作即可?您将我从次要位置救了出来头痛你救了我一个小头痛