如何在Angular5应用程序中使用内存中的Web-API和真实服务API

时间:2018-09-06 15:43:32

标签: angular angular5 angular-httpclient angular-in-memory-web-api

将in-memory-web-api与真实api一起使用时,我遇到问题。当我打电话给帖子调用时,它不会触发它正在查看内存网络API。我想对某些页面使用in-memory-web-api,因为我的其余api尚未准备好。有些页面我有真实的服务API。当我集成真实服务时,不会触发。经过一些长时间的分析后,我发现由于in-memory-web-api无法正常工作。让我知道在Angular5应用程序中是否可以同时使用两者。

import { HttpClientInMemoryWebApiModule } from 'angular-in-memory-web-api';

//import Section    

import { LocaldatasericeService }  from './localdataserice.service';
HttpClientInMemoryWebApiModule.forRoot(
  LocaldatasericeService, { dataEncapsulation: false }
)

我正在呼叫另一个service.js真正的帖子。

getTables(): Observable<any[]> {
   let parser = new DOMParser();
   let xmlString ='<stp><parameters><selFilter>V</selFilter></parameters></stp>';
   let doc = parser.parseFromString(xmlString, "application/xml");
   return this.http.post<any[]>('http://blabla.phs.org:7980/SASBIWS/rest/storedProcesses/Web/hsd3_hsd_pcp_try_111/dataTargets/_WEBOUT',doc,httpOptions);
}

1 个答案:

答案 0 :(得分:1)

在下面的app.module.ts配置中添加passThruUnknownUrl:true后,它开始工作。

@NgModule({
   imports: [
      ....
      HttpClientModule,
      ...
      HttpClientInMemoryWebApiModule.forRoot(
        LocaldatasericeService,{ dataEncapsulation: false,
        passThruUnknownUrl: true }
      )
      ...
  ]