我无法从API下载数据
我做错了什么,但我不知道
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa(userPassword)
}),
observe: 'response' as 'body'
};
@Injectable({
providedIn: 'root'
})
export class CoverageService {
eligibilityUrl = nepalehrUrl + 'EligibilityRequest';
constructor(private http: HttpClient) { }
getEligibilityData(body:object): Observable<EligibilityResponse> {
return this.http.post<EligibilityResponse>(this.eligibilityUrl, body, httpOptions);
}
}
我有信息:
组件中的代码
let bodyEligibility = {
resourceType: "EligibilityRequest",
patient: {
reference: "Patient/1975632"
}
};
this.myEligibilityData$ = this.coverageService.getEligibilityData(bodyEligibility);
console.log(JSON.stringify(this.myEligibilityData$))
我做错了事
答案 0 :(得分:0)
可观察对象是惰性的,除非您订阅它们,否则它们将不会执行。
因此,基本上,您必须subscribe
才能观察到才能使http调用生效。当前,当您执行console.log
时,您可以在浏览器console
中看到可观察到的全面信息。基本上,当执行订阅函数http调用并触发基础subscribe
函数时,可以在其中分配myEligibilityData
的值
myEligibilityData;
this.coverageService.getEligibilityData(bodyEligibility).subscribe(data => {
console.log(data);
this.myEligibilityData = data;
});
如果要将此数据直接显示在HTML上,则可以保留现有代码。您不必subscribe
可以观察到,而可以在HTML上使用async
管道,它将应用subscribe
并从Observable
提取数据。
<ng-container *ngIf="myEligibilityData$ | async as myEligibilityData">
{{myEligibilityData | json}}
</ng-container>