Angular 2 - 将参数传递给服务

时间:2016-07-05 07:46:54

标签: javascript angular

如何将字符串(将是一个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”移动到控制器。

2 个答案:

答案 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())
        }