Angular 英雄之旅:inMemory Web 的问题 API

Angular Tour of Heroes : problems with inMemory Web API

我正在学习著名的 Angular 教程,英雄之旅,但我正在努力迈出一步。

sixth course, HTTP 上,我们正在使用一个工具来模拟 API 对 API 的调用。

我想我遵循了所有步骤,直到 this point 说明如下:

Refresh the browser. The hero data should successfully load from the mock server.

但我可能错过了一些东西:http 调用都给出了 http 500 headers,错误是 Object(...) is not a function

我是否遗漏了有关创建路线的内容?对我来说,inMemory wep API 似乎不需要路线似乎很奇怪。

我的测试代码在这里可用:https://github.com/MarcBrillault/tourOfHeroes/tree/Whosebug

这是我必须做的,以便在从您的存储库中提取代码后将您的代码变为 运行。

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

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

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

根据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'});
}

此后一切正常。希望这对你有所帮助。