在使用 Angular 2 显示之前完全加载内容
Fully load content before showing it with Angular 2
在 angular component
中,我从 service http call
生成图像,然后我想将其显示在网站上。但是,生成图像所花费的时间比加载网站所花费的时间要长。
因此我被迫额外刷新几次以 see/display 实际图像最终加载时。
如何让ngOnit
在显示页面之前等待所有内容生成和加载?
this.someService.generateImage().subscribe(x => {
console.log('Image is now in folder')}
我希望页面在此调用后显示。
有什么提示吗?
在你的 ngOnInit 上使用:
ngOnInit() {
this.someService.generateImage().subscribe(x => {
//load page content functions.
console.log('Image is now in folder')
});
}
这是一个解决方法,因为 ngOnInit() 本身不等待异步调用
为什么要停止 ngOnInit 的执行而不是让它加载所有依赖项只是不显示它,
您可以应用的 hack 是通过带有加载程序服务的阻塞加载程序隐藏整个页面的内容,并在生成图像时显示页面的内容。像这样。
ngOnInit() {
loaderService.show();
this.someService.generateImage().subscribe(x => {
loaderService.hide();
console.log('Image is now in folder')
}
[Extra dependencies stuff .....]
}
You can do like this:
标记:
<div *ngIf="!isLoading">
// do not show till loading
</div>
分量:
isLoading = true;
this.someService.generateImage().subscribe((x) => {
console.log('Image is now in folder')
this.isLoading = false;
})
您可以使用 ngAfterViewInit()
它会在 dom 完全加载后执行
在 angular component
中,我从 service http call
生成图像,然后我想将其显示在网站上。但是,生成图像所花费的时间比加载网站所花费的时间要长。
因此我被迫额外刷新几次以 see/display 实际图像最终加载时。
如何让ngOnit
在显示页面之前等待所有内容生成和加载?
this.someService.generateImage().subscribe(x => {
console.log('Image is now in folder')}
我希望页面在此调用后显示。
有什么提示吗?
在你的 ngOnInit 上使用:
ngOnInit() {
this.someService.generateImage().subscribe(x => {
//load page content functions.
console.log('Image is now in folder')
});
}
这是一个解决方法,因为 ngOnInit() 本身不等待异步调用
为什么要停止 ngOnInit 的执行而不是让它加载所有依赖项只是不显示它, 您可以应用的 hack 是通过带有加载程序服务的阻塞加载程序隐藏整个页面的内容,并在生成图像时显示页面的内容。像这样。
ngOnInit() {
loaderService.show();
this.someService.generateImage().subscribe(x => {
loaderService.hide();
console.log('Image is now in folder')
}
[Extra dependencies stuff .....]
}
You can do like this:
标记:
<div *ngIf="!isLoading">
// do not show till loading
</div>
分量:
isLoading = true;
this.someService.generateImage().subscribe((x) => {
console.log('Image is now in folder')
this.isLoading = false;
})
您可以使用 ngAfterViewInit()
它会在 dom 完全加载后执行