Javascript 角度2-将参数传递到服务

Javascript 角度2-将参数传递到服务,javascript,angular,Javascript,Angular,如何将作为url的字符串传递给服务?因为我的“服务”总是一个http get请求,所以尽可能保持它的通用性并让控制器将url传递给它是有意义的,而不是让几十个单独的控制器中有不同的url 到目前为止,我的控制器如下所示: this._httpService.getOffers() .subscribe( data => { this.offers = <Offer[]>data.offers; }, error =

如何将作为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())
        }
this._httpService.getOffers('json/test.json')
        .subscribe(
        data => { this.offers = <Offer[]>data.offers; },
    error => alert(error),
    () => console.log("Finished")
    );

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

您可以这样做:

getOffers(url:string) { // <----
  return this._http.get(url)
        .map(res => res.json())
}
这样称呼它:

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())
        }
this._httpService.getOffers('json/test.json')
        .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())
}
这样称呼它:

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())
        }
this._httpService.getOffers('json/test.json')
        .subscribe(
        data => { this.offers = <Offer[]>data.offers; },
    error => alert(error),
    () => console.log("Finished")
    );

只需将一个参数传递给getOffers函数getOffersurl:string只需将一个参数传递给getOffers函数getOffersurl:string我在服务中是否必须说“url:string”?我不能只使用“url”吗?是的,你可以,因为TypeScript是JS的超集。在JS中可以做的一切都可以在TS中完成。也就是说,利用类型检查可能很有趣-啊,谢谢。我一直在想,因为它允许我只说“url”就行了。有没有一种方法可以让我编译代码,让它出现错误,并通知我我错过了它?你真是太好了!事实上并没有,但若你们有编译tsc类型脚本编译器会告诉你们。这个问题可以帮助你:啊,是的,我有一个编译器,但没有注意到其中的错误消息。只有一个错误我相信我能解决。非常感谢您的帮助:我必须在服务中说“url:string”吗?我不能只使用“url”吗?是的,你可以,因为TypeScript是JS的超集。在JS中可以做的一切都可以在TS中完成。也就是说,利用类型检查可能很有趣-啊,谢谢。我一直在想,因为它允许我只说“url”就行了。有没有一种方法可以让我编译代码,让它出现错误,并通知我我错过了它?你真是太好了!事实上并没有,但若你们有编译tsc类型脚本编译器会告诉你们。这个问题可以帮助你:啊,是的,我有一个编译器,但没有注意到其中的错误消息。只有一个错误我相信我能解决。非常感谢您的帮助: