角度教程无法从http调用接收数据

时间:2017-10-21 16:11:00

标签: angular angular2-services

我正在尝试按照教程第7步HTTP(https://angular.io/tutorial/toh-pt6)学习Angular 2。但是getHeroes()中的hero.service.ts函数仍然没有返回任何内容。

getHeroes(): Promise<Hero[]> {
    return this.http.get(this.heroesUrl)
    .toPromise()
    .then(response => response.json().data as Hero[])
    .catch(this.handleError);
} 

InMemoryDbService实现模拟服务。

请问好吗?

1 个答案:

答案 0 :(得分:1)

HTTP客户端将从内存中的Web API InMemoryDbService中获取并保存数据。基本上,这意味着InMemoryDbService将模拟将接收HTTP请求并将响应它们的服务器。

您安装了模块in-memory-web-api吗?如果没有,您可以安装它:npm install --save angular-in-memory-web-api

不要忘记在app.module中导入模块(此导入仅在导入HttpModule后才会出现):

imports: [
    ...
    HttpModule,
    InMemoryWebApiModule.forRoot(InMemoryDataService),
    ...
  ],

此外,in-memory-web-api的新api中引入的新更改不再包含data属性(github)中的HTTP响应。所以它应该是response.json()而不是response.json().data