Angular 2:带有 ID 的 HTTP GET 请求

Angular 2: HTTP GET Request with ID

我有一个针对特定对象的 http get 请求。因此,我在请求中传递了 ID。在服务器端,该值现在是 ${id} 但不是实际传递的数字。我究竟做错了什么?在另一个应用程序中它正在运行..

服务

getLeague(id){
    return this.http.get('api/leagues/${id}').map(res => res.json());
};

服务器端

router.route('/:league_id')
     .get(function(req,res){
         League.findOne({id: req.params.league_id})
     .exec(function(err,docs){
         if(err)
         res.send(err);
     res.json(docs);
  })});

在我的测试代码中,我只是简单地调用,例如getLeague(5),但是,我收到错误(似乎 ID ist 没有保存实际值,而只是保存变量名):

message: "Cast to number failed for value "${id}" at path "id" for model "League"", name: "CastError", stringValue: ""${id}"

谢谢!

您没有使用字符串插值 (Template Literals)。您需要 URL.

周围的反引号而不是单引号

您还没有将 {{id}} 传递给您的 link。您对后端的请求包括“/${id}”部分。要在 Typescript 中解析字符串中的变量,你应该用刻度线包装你的字符串以利用插值,即

return this.http.get(`api/leagues/${id}`).map(res => res.json());

如语法中所述 URL

`api/leagues/${id}`

使用反勾 ``` 应该可以解决这个问题