我正在关注https://angular.io/tutorial/toh-pt6的《 Angular 6英雄之旅》教程,并且一切正常。内存服务适用于仪表板,并且英雄列表显示正常。
但是,当单击英雄并执行英雄详细信息的组件getHero()方法时,即使以正确的值传递了“ id”参数,内存服务和FireFox也不会返回任何英雄对象开发人员工具控制台显示错误为404“未找到”的响应。
我已经将我的代码与教程页面上发布的代码进行了比较,直到它们相同为止。我已经在网上搜索,阅读并尝试了一些建议的修复程序,但是都没有得到积极的结果。
我敢肯定,我已逐步按照本教程进行操作,但是在这一点上,我需要一些帮助。为什么调用此方法通过id获取一位英雄失败,而检索所有英雄的方法工作正常?如果有人经历过同样的经历并且可以分享一些有关此404错误的信息,我将不胜感激。 TIA
最诚挚的问候,
里克
答案 0 :(得分: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);