Я использую Angular 7 и сталкиваюсь с проблемой => после входа в систему API GET успешно выполняет и компонент, получающий данные, но UI не отображает эти данные.
Когда я открываю консоль браузера, сразу данные заполняются в пользовательском интерфейсе, и на консоли отображается предупреждение.
"core.js: 15686 Навигация, вызванная вне угловой зоны, вы забыли позвонить 'ngZone.run()'?"
Я нашел это предупреждение и нашел некоторое обходное решение, подобное this.ngZone.run()
и вызовет мой API внутри него.
Но проблема в том, что я использую более 40 компонентов и называю так много API в каждом компоненте. Поэтому я должен вызвать ngZone.run()
для каждого вызова API, что, кажется, трудно сделать.
Пожалуйста, предложите мне лучший подход к решению этой проблемы. Заранее спасибо.
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');
}