• [Angular] How to show global loading spinner for application between page navigation


    app.component.ts:

    import { Component, OnInit } from "@angular/core";
    import { select, Store } from "@ngrx/store";
    import { Observable } from "rxjs";
    import { map } from "rxjs/operators";
    import {
      NavigationCancel,
      NavigationEnd,
      NavigationError,
      NavigationStart,
      Router
    } from "@angular/router";
    import { AppState } from "./reducers/index";
    import { isLoggedIn, isLoggedOut } from "./auth/auth.selectors";
    import { AuthActions } from "./auth/action-types";
    
    @Component({
      selector: "app-root",
      templateUrl: "./app.component.html",
      styleUrls: ["./app.component.css"]
    })
    export class AppComponent implements OnInit {
      loading = true;
    
      constructor(private store: Store<AppState>, private router: Router) {}
    
      ngOnInit() {
        ...this.router.events.subscribe(event => {
          switch (true) {
            case event instanceof NavigationStart: {
              this.loading = true;
              break;
            }
    
            case event instanceof NavigationEnd:
            case event instanceof NavigationCancel:
            case event instanceof NavigationError: {
              this.loading = false;
              break;
            }
            default: {
              break;
            }
          }
        });
      }
    
    }
    <div class="spinner-container" *ngIf="loading">
        <mat-spinner></mat-spinner>
      </div>
  • 相关阅读:
    nodejs express hi-cms
    写让别人能读懂的代码
    统计学和数据挖掘的关系
    假设检验
    相关性探索
    领域驱动设计分层类图
    未能加载文件或程序集 Ninject.Web.Common, Version=3.2.0.0
    论文阅读笔记
    《Computational Statistics with Matlab》硬译2
    C#抽象类和接口
  • 原文地址:https://www.cnblogs.com/Answer1215/p/11623738.html
Copyright © 2020-2023  润新知