我正在使用Angular 7并遇到一个问题 => 登录后API GET调用成功,组件也接收到了数据,但UI没有显示那些数据。
当我打开浏览器控制台时,立即在UI上填充数据,并显示一个警告。
"core.js:15686:导航触发Angular区域外部,您是否忘记调用'ngZone.run()'?"
我已经搜索了这个警告并找到了一些解决方法,例如this.ngZone.run()
,并在其中调用我的API。
但问题是,我正在使用超过40个组件并在每个组件中调用许多API。因此,我必须在每个API调用上调用ngZone.run()
,这似乎很难做到。
如何更好地解决这个问题?
app.component.ts
getEmployees(): void {
this.employeeService.getEmployees().subscribe(e => {
this.employees = e;
});
}
app.service.ts
@Injectable()
export class EmployeeService {
constructor(private httpClient: HttpClient) { }
getEmployees() {
return this.httpClient.get<EmployeeModel[]>('employees');
}
getEmployees
的引导代码。你从哪里调用getEmployees(): void
? - Ravinder Payalapp.component.ts
中设置employees
时是否发生了任何有趣的事情? - André Werlang