Skip to main content

angular material - How to use determinate Progress spinner

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})


export class AppComponent {
  isDisable:boolean = false;
  progress:number = 0;
  timer:any;
  maxValue:number = 100;

  onClick(){
    this.progress = 0;
    this.isDisable = true;
    this.timer = setInterval(() => this.updateProgress(), 300)
  }

  updateProgress(){
    this.progress++
    if(this.progress>=this.maxValue){
      clearInterval(this.timer);
    }
  }
}
app.component.html

<h2 style="padding-top:25px; padding-bottom:25px;">
    Angular Material - How to use determinate Progress spinner
</h2>


<button 
    mat-raised-button 
    color="accent"
    (click)="onClick()" 
    [disabled]="isDisable" 
    style="margin-bottom:30px;">
        Run Task
</button>

<h3 *ngIf="isDisable">Progress : {{progress}}</h3>

<mat-progress-spinner 
    mode="determinate"
    [value]="progress">
</mat-progress-spinner>
app.module.ts [import]

import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'
import {MatButtonModule} from '@angular/material/button'
More Angular tutorials