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