使用 Pre-Bootstrap Loading Screen For Angular2 避免一秒钟的空白页面
Avoid a second of blank page using Pre-Bootstrap Loading Screen For Angular2
我正在 bootstrap 加载前 Angular 2 中设置动画,如下所示:
<app-root>
<div class="background">
<div class="wrapper">
<div class="loading-ball">
</div>
</div>
</div>
</app-root>
但是当我添加延迟加载模块功能时,我开始在动画和最终页面之间看到 1 秒的空白页
可能是因为我在加载最终模块之前完成了 app-root 组件的加载。
有什么方法可以避免这种情况?
发生这种情况是因为您的应用程序组件从服务器加载惰性组件,因此需要一些时间才能显示空白屏幕。
您可以通过在 app-component.html
.
中导入代码来避免这种情况
<div class="background" *ngIf="loading">
<div class="wrapper">
<div class="loading-ball">
</div>
</div>
</div>
这应该覆盖整个屏幕并在 app.component.ts
constructor(
private _router: Router
) { }
loading = false;
ngOnInit() {
this._router.events.subscribe(v => this.navigationInterceptor(v));
}
navigationInterceptor(event: RouterEvent): void {
if (event instanceof NavigationStart) {
this.loading = true;
}
if (event instanceof NavigationEnd) {
this.loading = false;
}
if (event instanceof NavigationCancel) {
this.loading = false;
}
if (event instanceof NavigationError) {
this.loading = false;
}
}
我正在 bootstrap 加载前 Angular 2 中设置动画,如下所示:
<app-root>
<div class="background">
<div class="wrapper">
<div class="loading-ball">
</div>
</div>
</div>
</app-root>
但是当我添加延迟加载模块功能时,我开始在动画和最终页面之间看到 1 秒的空白页
可能是因为我在加载最终模块之前完成了 app-root 组件的加载。
有什么方法可以避免这种情况?
发生这种情况是因为您的应用程序组件从服务器加载惰性组件,因此需要一些时间才能显示空白屏幕。
您可以通过在 app-component.html
.
<div class="background" *ngIf="loading">
<div class="wrapper">
<div class="loading-ball">
</div>
</div>
</div>
这应该覆盖整个屏幕并在 app.component.ts
constructor(
private _router: Router
) { }
loading = false;
ngOnInit() {
this._router.events.subscribe(v => this.navigationInterceptor(v));
}
navigationInterceptor(event: RouterEvent): void {
if (event instanceof NavigationStart) {
this.loading = true;
}
if (event instanceof NavigationEnd) {
this.loading = false;
}
if (event instanceof NavigationCancel) {
this.loading = false;
}
if (event instanceof NavigationError) {
this.loading = false;
}
}