如何将字符串(将是一个url)传递给服务?由于我的“服务”总是一个http get请求,所以尽可能保持通用是有意义的,并让控制器将url传递给它,而不是让几十个单独的控制器包含不同的URL。
到目前为止,我的控制器看起来像这样:
this._httpService.getOffers()
.subscribe(
data => { this.offers = <Offer[]>data.offers; },
error => alert(error),
() => console.log("Finished")
);
在我的“服务”中它看起来像这样:
getOffers() {
return this._http.get('json/test.json')
.map(res => res.json())
}
但我想将“json / test.json”移动到控制器。
答案 0 :(得分:9)
你可以这样做:
getOffers(url:string) { // <----
return this._http.get(url)
.map(res => res.json())
}
并将其称为:
this._httpService.getOffers('json/test.json')
.subscribe(
data => { this.offers = <Offer[]>data.offers; },
error => alert(error),
() => console.log("Finished")
);
答案 1 :(得分:1)
this._httpService.getOffers(url:string)
.subscribe(
data => { this.offers = <Offer[]>data.offers; },
error => alert(error),
() => console.log("Finished")
);
getOffers(url:string) {
return this._http.get(url)
.map(res => res.json())
}