Angular Tour of Heroes:inMemory Web API的问题

时间:2018-03-24 21:49:04

标签: angular angular-cli in-memory-database

我正在关注着名的角色教程,英雄之旅,但我正在努力迈出一步。

sixth course, HTTP上,我们使用了一个模仿API调用API的工具。

我想我已按照所有步骤进行操作,直至this point,其中说明了以下内容:

  

刷新浏览器。英雄数据应该从模拟服务器成功加载。

但我可能错过了一些内容:http调用都会给出http 500标题,错误为Object(...) is not a function

我是否错过了创建路线的方法?对我来说,似乎奇怪的是inMemory wep API似乎不需要路由。

我的测试代码可在此处找到:https://github.com/MarcBrillault/tourOfHeroes/tree/StackOverflow

1 个答案:

答案 0 :(得分:14)

以下是我需要做的,以便在从您的回购中提取代码后运行代码。

首先,降级为angular-in-memory-web-api@0.5.4。这意味着将 package.json 中的版本更改为^0.5.4并运行npm i

"angular-in-memory-web-api": "^0.5.4",

我听说有些人在使用angular-in-memory-web-api的0.6.0版本时遇到了问题,所以这是我尝试过的第一步。

根据thisangular-in-memory-web-api版本0.6.0需要 Angular" ^ 6.0.0-rc.0"和RxJS" ^ 6.0.0-beta.1"

因此,降级应该会让您继续学习本教程。准备好后,请随意转到上面的Angular和RxJS版本。

然后,我需要在 hero.service.ts 中进行这些更改。

添加了此导入:

import { of } from 'rxjs/observable/of';

改变这个:

getHero(id: number): Observable<Hero> {
    return Observable.of({id: 1, name: 'test'});
}

到此:

getHero(id: number): Observable<Hero> {
    return of({id: 1, name: 'test'});
}

所有人都在这之后工作。希望这会帮助你。