希望是一个简单的问题,在整个应用程序中调用加载/忙碌模式的可维护方法是什么?当然,它的性质将需要在整个应用程序的几个屏幕上使用。是否最好有一个带有ng风格的组件来显示它?您是否必须将其逻辑显示在每个http请求上,或者您是否可以通过在httpservice中使用它来简化它的显示方式?
答案 0 :(得分:2)
当实现这样的东西时,我建议创建一个组件+服务组合。您的组件是视觉方面 - 无论您希望如何风格。但关键部分是你的服务公开了一个简单的boolean / Observable,你的组件将其可见性绑定到(通过一个简单的ngIf)。
这意味着如果您确保在根注入器级别提供加载服务,则可以将该服务注入需要显示加载指示符的任何其他组件/服务,并通过切换服务上的布尔值,切换是否装载指示器显示或隐藏。
简单实施。
所以,我的服务可能如下:
export class LoadingIndicator {
private _isLoading = false;
isLoading(): boolean {
return this._isLoading;
}
show(): void {
this._isLoading = true;
}
hide(): void {
this._isLoading = false;
}
}
将LoadingIndicatorComponent绑定到isLoading()方法。 (您也可以直接使用该属性 - 我倾向于过度谨慎地封装Java时代的内容,但对于这样一个简单的用例,并不是绝对必要的。)
为确保注入根构造函数,我在AppModule中提供此服务 - 确保只有一个服务实例。