Angular 2 - 将参数传递给服务

And*_*ard 1 javascript angular

如何将字符串(将是一个URL)传递给服务?由于我的"服务"始终是一个http get请求,因此尽可能保持通用是有意义的,并让控制器将url传递给它,而不是使用不同的url制作数十个单独的控制器.

到目前为止,我的控制器如下所示:

this._httpService.getOffers()
            .subscribe(
            data => { this.offers = <Offer[]>data.offers; },
        error => alert(error),
        () => console.log("Finished")
        );
Run Code Online (Sandbox Code Playgroud)

在我的"服务"中它看起来像这样:

getOffers() {
            return this._http.get('json/test.json')
                .map(res => res.json())
        }
Run Code Online (Sandbox Code Playgroud)

但我想将"json/test.json"移动到控制器.

Thi*_*ier 9

你可以这样做:

getOffers(url:string) { // <----
  return this._http.get(url)
        .map(res => res.json())
}
Run Code Online (Sandbox Code Playgroud)

并称之为:

this._httpService.getOffers('json/test.json')
        .subscribe(
        data => { this.offers = <Offer[]>data.offers; },
    error => alert(error),
    () => console.log("Finished")
    );
Run Code Online (Sandbox Code Playgroud)

  • 是的,你可以,因为TypeScript是JS的超集.您在JS中可以做的一切都可以在TS中完成.话虽这么说,利用类型检查可能很有趣;-) (3认同)