仅调用JavaScript函数即可显示进度条

时间:2018-11-01 15:26:22

标签: javascript angular typescript

我正在使用Angular(6),并且想显示一个进度微调器(MatProgressSpinner),而无需了解HTML。当我执行HTTP请求时,我想触发一个显示进度条的JavaScript方法。我不想在HTML的任何地方定义它,它也不应该在DOM中可见,而只能在运行时显示。

我该怎么做?真的找不到解决方法:(

2 个答案:

答案 0 :(得分:0)

您可以使用Jquery Modal Loader; 参见https://www.labor.ny.gov/ux/code-modal-loader.html 希望对您有帮助

答案 1 :(得分:0)

您可以编写自定义加载服务,如下所示: https://github.com/boytsovevg/steamRoom/tree/master/src/app/loading

或者您可以实现将您的methodWithSpinner包装的自定义方法

private loadingSubject = new Subject<Loading>();
public loadingState = this.loadingSubject.asObservable();

public withProgressSpinner<T>(spinnerMethod$: Observable<T>): Observable<T> {
    this.start();

    return spinnerMethod$
        .pipe(
            finalize(() => this.end())
        );
}

private start(): void {
    this.loadingSubject.next({isLoading: true} as Loading);
}

private end(): void {
    this.loadingSubject.next({isLoading: false} as Loading);
}

随时提问。