我正在尝试按照教程第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
实现模拟服务。
请问好吗?
答案 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
。