Loading management

Angular Bootstrap 5 Loading management

Displays animation in a container (such as a table) while loading data.

Note: Read the API tab to find all available options and advanced customization


Basic example

Loading automatically init when you set [show] input to true. Loader will take all available space of its container. If you don't use fullscreen loader and want to attach loader to a container, use [container] and specify parent element for mdb-loading component.

Loading...
        
            
            <div style="height: 300px; width: 100%; z-index: 1029" #container>
              <mdb-loading [show]="true" [container]="container">
                <div class="loading-spinner">
                  <div class="spinner-border loading-icon" role="status"></div>
                  <span class="loading-text">Loading...</span>
                </div>
              </mdb-loading>
            </div>
          
        
    

Colors

You can set a different colors to loader with text-* color like primary, success, danger, warning.

Loading...
        
            
            <div style="height: 300px; width: 100%; z-index: 1029" #container>
              <mdb-loading [show]="true" [container]="container">
                <div class="loading-spinner">
                  <div class="spinner-border loading-icon text-success" role="status"></div>
                  <span class="loading-text text-success">Loading...</span>
                </div>
              </mdb-loading>
            </div>
          
        
    

Custom spinners

MDB Growing spinner

If you don’t fancy a border spinner, switch to the grow spinner. While it doesn’t technically spin, it does repeatedly grow!

Loading...
        
            
              <div
                style="height: 300px; width: 100%; z-index: 1029"
                #container
              >
                <mdb-loading [show]="true" [container]="container">
                  <div class="loading-spinner">
                    <div class="spinner-grow loading-icon" role="status"></div>
                    <span class="loading-text">Loading...</span>
                  </div>
                </mdb-loading>
              </div>
            
        
    

Font Awesome

Use font awesome spinner icon to indicate loading status.

Loading...
        
            
              <div style="height: 300px; width: 100%; z-index: 1029" #container>
                <mdb-loading [show]="true" [container]="container">
                  <div class="loading-spinner">
                    <div class="fas fa-spinner fa-spin fa-2x loading-icon"></div>
                    <span class="loading-text">Loading...</span>
                  </div>
                </mdb-loading>
              </div>
            
        
    

Delay

Use following code to delay the appearance of loading spinner.

        
            
            <div>
              <div class="h2 d-flex justify-content-center" *ngIf="showTimer">{{ time }}</div>
              <div class="form-check form-switch my-3">
                <input
                  mdbCheckbox
                  (checkboxChange)="onChange()"
                  class="form-check-input"
                  type="checkbox"
                  id="flexSwitchCheckDefault"
                />
                <label class="form-check-label" for="flexSwitchCheckDefault">Switch Delay</label>
              </div>
              <mdb-loading [show]="show" [fullscreen]="true">
                <div class="loading-spinner">
                  <div class="spinner-border loading-icon" role="status"></div>
                  <span class="loading-text">Loading...</span>
                </div>
              </mdb-loading>
            </div>
          
        
    
        
            
            import { Component } from '@angular/core';

            @Component({
              selector: 'app-loading-management',
              templateUrl: './loading-management.component.html',
              styleUrls: ['./loading-management.component.scss'],
            })
            export class LoadingManagementComponent {
              show = false;
              showTimer = false;
              time = 4;

              constructor() {}

              onChange() {
                this.showTimer = true;
                const delayTimer = setInterval(() => {
                  if (this.time <= 1) {
                    clearInterval(delayTimer);
                    this.show = true;
                    setTimeout(() => {
                      this.show = false;
                    }, 5000);
                  }
                  this.time -= 1;
                }, 1000);
              }
            }
          
        
    

Full screen

Use the code below to add spinner for larger content areas or for full-screen loading.

        
            
            <div>
              <button class="btn btn-primary" id="btn-full-screen" (click)="showLoader()">
                Full screen
              </button>
            </div>
            <mdb-loading [show]="show" [fullscreen]="true">
              <div class="loading-spinner">
                <div class="spinner-border loading-icon" role="status"></div>
                <span class="loading-text">Loading...</span>
              </div>
            </mdb-loading>
          
        
    
        
            
            import { Component } from '@angular/core';

            @Component({
              selector: 'app-loading-management',
              templateUrl: './loading-management.component.html',
              styleUrls: ['./loading-management.component.scss'],
            })
            export class LoadingManagementComponent {
              show = false;

              constructor() {}

              showLoader(): void {
                this.show = true;
                setTimeout(() => {
                  this.show = false;
                }, 5000);
              }
            }
          
        
    

Loading management - API


Import

        
            
          import { MdbLoadingModule } from 'mdb-angular-ui-kit/loading';
          …
          @NgModule ({
            ...
            imports: [MdbLoadingModule],
            ...
          })
        
        
    

Inputs

Name Type Default Description
backdrop boolean true Whether loader backdrop should be displayed
backdropClass string - Defines custom backdrop class
container HTMLElement - Defines parent container of the loader component
fullscreen boolean false Whether fullscreen loader should be displayed