Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?

后端 未结 4 1168
迷失自我
迷失自我 2020-12-25 10:42

I am using Angular 7 and facing an issue => after login the API GET calls successfully and the component receiving data too, but UI is not displaying that data.

Whe

4条回答
  •  北海茫月
    2020-12-25 11:16

    Usually this happens when you are wrapping angular calls inside some external js callback, from external JavaScript not related to angular code.

    Example app.component.ts:

    callMyCustomJsLibrary() {
      googleSdk.getLocations(location => this.getEmployees());
    }
    
    getEmployees(): void {
        this.employeeService.getEmployees().subscribe(e => {
            this.employees = e;
        });
    }
    

    In this case you will have to include the call into the NgZone, example: this.ngZone.run(() => this.getEmployees());

    The app.component.ts would then look like the following:

    callMyCustomJsLibrary() {
      googleSdk.getLocations(location => this.ngZone.run(() => this.getEmployees()));
    }
    
    getEmployees(): void {
        this.employeeService.getEmployees().subscribe(e => {
            this.employees = e;
        });
    }
    

提交回复
热议问题