相关疑难解决方法(0)

在Angular区域外触发导航,您是否忘记调用'ngZone.run()'?

我正在使用Angular 7并面临一个问题=>登录后,API GET调用成功,组件也接收数据,但UI没有显示该数据.

当我打开浏览器控制台时,会立即在UI上填充数据并在控制台中显示警告.

"core.js:15686在Angular区域外触发导航,您是否忘记调用'ngZone.run()'?"

我已经搜索了这个警告并找到了一些解决方法,并在其中this.ngZone.run()调用我的API.

但问题是,我使用了40多个组件,并在每个组件中调用了这么多API.所以我必须调用ngZone.run()每个API调用,这似乎很难做到.

请建议我更好的方法来克服这个问题.提前致谢.

app.component.ts

getEmployees(): void {
    this.employeeService.getEmployees().subscribe(e => {
        this.employees = e;
    });
}
Run Code Online (Sandbox Code Playgroud)

app.service.ts

@Injectable()
export class EmployeeService {
    constructor(private httpClient: HttpClient) { }

    getEmployees() {
        return this.httpClient.get<EmployeeModel[]>('employees');
    }
Run Code Online (Sandbox Code Playgroud)

zonejs angular angular-router

31
推荐指数
5
解决办法
2万
查看次数

使用angular-cli在没有节点服务器的情况下运行本地构建在Chrome上的角度2应用程序

我将非常精确地使我的Angular 2问题.

我正在使用:

Angular 2,angular-cli:1.0.0-beta.15,(webpack building)节点:6.4.0,os:linux x64

2.我想要实现的目标:

我想以一种方式构建我的项目,在构建之后(ng build project-name)我获得了我的Angular 2应用程序的静态文件,我可以直接从chrome运行而不使用ng服务或节点服务器.我只想双击index.html并在本地运行应用程序.

3.同时,当我双击生成的index.html时,我在chrome浏览器控制台输出中获得的是:

file:///inline.js无法加载资源:net :: ERR_FILE_NOT_FOUND文件:///styles.b52d2076048963e7cbfd.bundle.js无法加载资源:net :: ERR_FILE_NOT_FOUND文件:///main.c45bb457f14bdc0f5b96.bundle.js无法加载资源:net :: ERR_FILE_NOT_FOUND文件:///favicon.ico无法加载资源:net :: ERR_FILE_NOT_FOUND

  1. 据我所知,这与路径有关.构建和捆绑的应用程序找不到正确的路径.所以我的问题是我应该在哪里以及如何更改我的应用程序或任何构建配置文件的路径,以便我的应用程序像我希望的那样以我在第2点中描述的方式工作

  2. 提前感谢您对该主题的直接和完整答案,因为其他主题并未解释该主题的全部范围.

javascript webpack ember-cli angular-cli angular

27
推荐指数
5
解决办法
3万
查看次数