Angular 2 - 加载/忙碌模式的最佳方法

时间:2017-03-25 20:21:12

标签: angular typescript

希望是一个简单的问题,在整个应用程序中调用加载/忙碌模式的可维护方法是什么?当然,它的性质将需要在整个应用程序的几个屏幕上使用。是否最好有一个带有ng风格的组件来显示它?您是否必须将其逻辑显示在每个http请求上,或者您是否可以通过在httpservice中使用它来简化它的显示方式?

1 个答案:

答案 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中提供此服务 - 确保只有一个服务实例。