Javascript Angular 5服务正在从api返回数据,但组件没有向我显示数据

Javascript Angular 5服务正在从api返回数据,但组件没有向我显示数据,javascript,angular,rxjs,observable,Javascript,Angular,Rxjs,Observable,Angular 5中使用typescript和rxjs以及observables的大部分内容与Angular 2、4非常相似,但我似乎很难理解为什么我的组件代码没有显示数据 这是我的密码 型号: export class arsCodes { iD: number; aRSCode: string; aRSDescription: string; class: string; victimFlag: string; startDate: string; endD

Angular 5中使用typescript和rxjs以及observables的大部分内容与Angular 2、4非常相似,但我似乎很难理解为什么我的组件代码没有显示数据

这是我的密码

型号:

export class arsCodes {
  iD: number;   
  aRSCode: string;
  aRSDescription: string;
  class: string;
  victimFlag: string;
  startDate: string;
  endDate: string;
  createdByUserID: string;
  createdOnDateTime: string;
  modifiedByUserID: string;
  modifiedOnDateTime: string;
}
工作服务

const httpOptions = {
  headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};

getArsCodesApi(search: arsCodes) {
  return this.http.post(this.serviceUrl, JSON.stringify(search), httpOptions)
    .map((response: Response) => {
      response;
      console.log(response) // WORKS
    })
}
上面console.log中的“response”返回{Status:“success”,Message:,data:Array(16)}

然后

但是,在我从subscribe中的组件文件调用时,它是未定义的

arsCode: ArsCode[];

this.arsSevice.getArsCodesApi(this.model).subscribe(
  result => {
    //this.arsCode = result
    console.log(result);
  },
  error => {
    console.log(error);
  }
)

我需要在我的组件中执行什么操作才能检索数据?

问题是您的服务的.map()函数中没有返回任何内容(使用HttpClient不需要此函数)

但无论如何,你必须像这样返回:

return this.http.post(this.serviceUrl, JSON.stringify(search), httpOptions)
  .map((response: Response) => {
    console.log(response);
    return response;
  });

您正在返回map函数。在http请求中包含以下代码以返回数据:

return this.http.post(this.serviceUrl, JSON.stringify(search), httpOptions)
    .map(this.extractData)
    .catch(this.handleError);
从普通数据中提取是一个简单的返回:

private extractData(res: Response): Observable<any> {
    return res|| { };
  }

它不喜欢现在的console.log行console.log(响应)
private extractData(res: Response): Observable<any> {
    return res|| { };
  }
 private handleError(error: any){
    return Observable.throw("Data unavailable or incorrect url");
  }