getAnArticle(articleId: string): Observable<any> {
return this._http.get(`${this._url}/${articleId}`)
.map((response: Response) => response.json())
.do(value => console.log(value))
.catch((error) => Observable.throw(error));
}
在上面的代码中,http.get通过URL请求如下:
http://website.com/.json/5
如何在.json之前插入{articleId}
(在此示例中为5),以便将URL实际读取为:
http://website.com/5.json
答案 0 :(得分:1)
您的this._url
变量看起来很糟糕。实现这一目标的正确方法是修复变量,以便更容易操作。如果您无法修改此变量的计算方式,则唯一的机会是替换值:
return this._http.get(this._url.replace(".json", articleId + ".json"))
答案 1 :(得分:1)
你需要这样的东西(假设你的网址已经是.json
)
var url = 'www.asd.com/.json'
var articleId = 2;
var a = `${url.split('/.json')[0]}/${articleId}.json`
console.log(a)
&#13;
在你的情况下:
getAnArticle(articleId: string): Observable<any> {
return this._http.get(`${this._url.split('/.json')[0]}/${articleId}.json`)
.map((response: Response) => response.json())
.do(value => console.log(value))
.catch((error) => Observable.throw(error));
}
答案 2 :(得分:0)
如果您拥有this.url
的控制权,则可以使用令牌来定义它,以指示ID应该去的地方,例如
this._url = 'http://website.com/{articleId}.json';
...
return this._http.get('${this._url.replace('{id}', articleId))
这样您的代码就不会与网址格式相关联。