0

我正在关注来自https://angular.io/tutorial/toh-pt6的 Angular 6 Tour of Heroes 教程,一切正常。内存服务适用于仪表板,英雄列表显示正常。

但是当一个英雄被点击并且英雄细节的组件 getHero() 方法被执行时,即使“id”参数被传递了正确的值,内存中的服务并没有返回任何英雄对象,并且 FireFox 开发者工具控制台显示错误 404“未找到”的响应。

我已经将我的代码与教程页面上发布的代码进行了比较,直到它们相同为止。我在网上搜索过,阅读并尝试了几个建议的修复方法,但没有积极的结果。

我很确定我已经逐步按照教程进行操作,但此时我需要一些帮助。为什么调用该方法通过id获取一个英雄失败,而检索所有英雄的方法却可以正常工作?如果有人经历过同样的经历并且可以分享一些关于这个 404 错误的信息,我将不胜感激。TIA

此致,

瑞克

4

1 回答 1

0

我遇到了同样的问题。我希望有人可以提供更优雅的解决方案,但这是我修复它的方法。

替换此块:

return of(HEROES.find(hero => {
      hero.id === id;
    }))

用这个块:

let thisHero;
    for (let i = 0; i < HEROES.length; i++) {
      if (HEROES[i].id === id) {
        thisHero = HEROES[i]
      }
    }
return of(thisHero);
于 2020-01-13T22:08:01.337 回答