javascript - 快照参数/服务在 Angular 2 中返回 NaN

标签 javascript angular angular2-routing nan angular2-services

我在使用 Angular2 中的路由器和激活路由将参数从一个组件传递到下一个组件时遇到问题

我的 EdmundsAPI 服务:

  getModels(makeNiceName: string): Observable<Models> {
    return this.http.get(this.baseURL +
      + makeNiceName + '/models?year=2017&view=basic' + this.apiKey)
      .map(res => res.json())
      .catch(this.handleError);
  }

我的“来自”组件(品牌):

  goToModels(makeNiceName: string): void {
    this.router.navigate ( [ '/models', { data: makeNiceName } ] );
  }

我的“to”组件(模型):
(“导出类”声明后的变量“makeNiceName”):

 makeNiceName: string = this.route.snapshot.params[ 'data' ];

  getModels(): void {
    this._EdmundsAPIService.getModels(this.makeNiceName)
      .subscribe(
        //Do Stuff here
        error =>  this.errorMessage = <any>error);
  }

我来自 Models.getModels() 的 API URL(来自 Chrome 浏览器检查 --> 网络):

BaseURL + /NaN/ models?year=2017&view=basic + apiKey

为什么 NaN 代替我的“makeNiceName”变量,这是一个字符串,我想将其传递给我的服务以创建 URL

最佳答案

您的函数 getModels 连续有两个加号,这似乎是将 NaN 插入到字符串中。

同样,当我计算 'string'++ 'hello' 时,结果是 "stringNaN"。但是当我尝试 'string'++ 123 结果是 "string123"

试试这个:

getModels(makeNiceName: string): Observable<Models> {
  return this.http.get(this.baseURL +
    makeNiceName + '/models?year=2017&view=basic' + this.apiKey)
    .map(res => res.json())
    .catch(this.handleError);
}

关于javascript - 快照参数/服务在 Angular 2 中返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42254952/

相关文章:

用于验证电话号码的 Javascript 正则表达式

javascript - 防止在 onclick 后选中复选框

html - 如何制作 flex 弹出窗口?

Angular - 在父容器内打开 Bottom Sheet (MatBottomSheet)

Angular 4使用switchMap失去对路由器paramMap的订阅

javascript - 根据Id和switch向<td>添加类

javascript - 设置值后输入字段是否扩展?

angular - 创建 Firestore 测试数据库

Angular queryParamMap 为空,然后填充

angular - 为什么 templateUrl 不起作用?