我对Angular 2和Typescript很陌生,想要建立一个Card-Search应用程序。 基本上我有一个组件,其中存储和观察响应数据......
this.searchFormGroup.valueChanges
.debounceTime(200)
.distinctUntilChanged()
.switchMap(searchFormGroup => this.mtgService.getCardsByName(searchFormGroup))
.subscribe(
searchResult => {
this.searchResult = searchResult.cards;
},
err => {
console.log(err);
});
...和一个服务,它将http.get请求发送到API ...
getCardsByName(searchFormGroup){
this.params.set(...) ...
return this.http.get(this.nameUrl, { search: this.params })
.map(res => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'))}
......彼此沟通。
从组件内部的请求中存储标头数据的最佳方法是什么?基本上我需要请求的总卡数和分页链接,它们在响应头中可用。我已经试图找到解决方案几个小时了:o
答案 0 :(得分:1)
好的尝试并且错误让我解决了这个问题: 组件激活服务的http.get - >服务响应res.json() - >组件只有JSON中的res,似乎删除了响应头。 我的解决方法是:
组件:
this.searchFormGroup.valueChanges
.debounceTime(200)
.distinctUntilChanged()
.switchMap(searchFormGroup => this.mtgService.getCardsByName(searchFormGroup))
.subscribe(
res => {
console.log(res.headers); //works fine now!
this.searchResult = res.json().cards;
},
err => {
console.log(err);
});
服务:
getCardsByName(searchFormGroup){
this.params.set(...) ...
return this.http.get(this.nameUrl, { search: this.params })
.catch((error:any) => Observable.throw(error.json().error || 'Server error')) }
因此,完整的res现在会传回组件。
但是:有什么提示可以让它更好吗?