Angular 4 custom async loading spinner with two simple methods for your asychronous calls. Custom loading template & loading text inputs are also available.
npm i ng4-loading-spinner --save
You can override the css for your customized spinner. You can also configure your own threshold to show spinner only for more expensive processes! Supports latest Angular v5.x Supports latest Angular cli v1.5.x
Import module to your application master module
import { Ng4LoadingSpinnerModule } from 'ng4-loading-spinner';
Make an import entry as shown below
imports: [ Ng4LoadingSpinnerModule.forRoot() ]
Include spinner component to your root level component.
<ng4-loading-spinner> </ng4-loading-spinner>
Import
Ng4LoadingSpinnerService
to the component where you want to show the spinner.
import { Ng4LoadingSpinnerService } from 'ng4-loading-spinner';
Inject dependancy
constructor(
private spinnerService: Ng4LoadingSpinnerService
) { }
Use
show()
method to display the loading spinner.
this.spinnerService.show();
Use
hide()
method to hide the loading spinner once the processing is done.
this.spinnerService.hide();
this.spinnerService.show();
this.http.get(GLOBAL['CONFIG_URL'])
.subscribe(data => {
this.spinnerService.hide();
});
[template] : Accepts HTML which generates the loading spinner. You can apply additional css to design your own spinner, or can just pass *.gif image to show the loading spinner.
[loadingText] : Accepts a string to display the text while the loading process.
[zIndex] : Accepts a z-index css property for loading text.
[threshold] : Accepts time in milliseconds for threshold through which you can conditionally show the spinner only for expensive calls. Default is 500 ms.
default [loadingText] text would be blank.
app.component.html : both are optional if not provided default would be shown.
<ng4-loading-spinner [threshold]="2000" [template]="template" [loadingText]="'Please wait...'" [zIndex]="9999"></ng4-loading-spinner>
[threshold]="2000" : This will show the loading bar for the only processes which will take time more 2 secs.
app.component.ts
template: string =`<img src="http://pa1.narvii.com/5722/2c617cd9674417d272084884b61e4bb7dd5f0b15_hq.gif" />`
MIT © Amit Mahida