在Angular中,可以使用一个全局的加载指示器来显示页面正在加载的状态。以下是一个示例的解决方法:
loading.service.ts
服务文件,用于管理加载状态:import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class LoadingService {
private isLoading = false;
constructor() { }
show() {
this.isLoading = true;
}
hide() {
this.isLoading = false;
}
isLoadingStatus() {
return this.isLoading;
}
}
import { Component, OnInit } from '@angular/core';
import { LoadingService } from './loading.service';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent implements OnInit {
isLoading = false;
constructor(private loadingService: LoadingService) { }
ngOnInit() {
this.loadingService.isLoadingStatus().subscribe((isLoading) => {
this.isLoading = isLoading;
});
}
}
loading.service.ts
服务中的方法来控制加载状态:import { Component, OnInit } from '@angular/core';
import { LoadingService } from './loading.service';
@Component({
selector: 'app-example',
template: `
`
})
export class ExampleComponent implements OnInit {
constructor(private loadingService: LoadingService) { }
ngOnInit() {
this.loadingService.show(); // 显示加载指示器
// 模拟异步加载数据
setTimeout(() => {
this.loadingService.hide(); // 隐藏加载指示器
}, 2000);
}
}
这样,当loading.service.ts
服务中的加载状态改变时,根组件的加载指示器会自动更新,从而能够始终显示加载状态。
下一篇:Angular 视图不更新数据