Я использую Angular 7 и сталкиваюсь с проблемой => после входа в систему, API GET успешно вызывает, и компонент тоже получает данные, но пользовательский интерфейс не отображает эти данные.
Когда я открываю консоль браузера, данные сразу заполняются в пользовательском интерфейсе, и в консоли отображается предупреждение.
"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');
}