我正在角网站(https://angular.io/tutorial/toh-pt4)上使用Tour of Heroes示例,我遇到了解决我的页面对象的服务调用问题。如果我直接调用模拟对象一切正常(返回MOCKEDOBJECT),但是当我尝试使用响应时,我一直得到错误无法读取未定义的属性。我对角度很新,我只是没有看到我做错了什么。
这是服务代码:
getEmployer(): Promise<Employer> {
return Promise.resolve(EMPLOYER);//doesn't work
}
getMockEmployer(): Employer {
return EMPLOYER; //works fine
}
这是我的页面代码中的内容:
//mocked promise - doesn't work
this.employerService.getEmployer().then(employer => this.employer = employer);
//mocked data - works fine.
//this.employer = this.employerService.getMockEmployer();
仅供参考,我的npm文件夹引用@ angular / core(4.1.2)
我还没有打电话给api。我还在使用服务中的模拟数据。我没有看到英雄之旅中的样本与我的代码之间存在任何差异,但是他们的作品和我的作品没有。
答案 0 :(得分:0)
帮助遇到此问题的任何人
&#34;至于为什么TOH工作,是因为他们的响应是一个数组,你得到一个对象,当你的雇主仍未定义时,你试图读取属性路径。&#34;
基本上,如果您将对象用于数据而不是对象数组,请确保使用* ngIf。