A nanoscopic progress bar. Featuring realistic trickle animations to convince your users that something is happening!
Installation
Install it with npm
npm install ngx-progressbar --save
SystemJS
If you are using SystemJS, you should also adjust your configuration to point to the UMD bundle.
In your systemjs config file, map needs to tell the System loader where to look for ngx-progressbar
:
map: {
'ngx-progressbar': 'node_modules/ngx-progressbar/bundles/ngx-progressbar.umd.js',
}
Usage
Import NgProgressModule
in the root module
import { NgProgressModule } from 'ngx-progressbar';
@NgModule({
imports: [
NgProgressModule
]
})
In your template
<ng-progress></ng-progress>
Add NgProgressService
wherever you want to use the progressbar.
import {NgProgressService} from 'ngx-progressbar';
@Component({
})
export class SomeComponent {
constructor(public pService: NgProgressService) {
}
ngOnInit(){
this.pService.start();
this.http.get(url).subscribe(res){
this.pService.done();
}
}
}
NgProgressService options (functions):
-
NgProgressService.start()
Shows the progress bar
-
NgProgressService.set(n)
Sets a percentage n (where n is between 0-1)
-
NgProgressService.inc(n)
Increments by n (where n is between 0-1)
-
NgProgressService.done()
Completes the progress
NgProgressComponent options (inputs):
<ng-progress [positionUsing]="'marginLeft'" [minimum]="0.15" [maximum]="1"
[speed]="200" [showSpinner]="false" [direction]="'rightToLeftIncreased'"
[color]="'red'" [trickleSpeed]="250" [thick]="false" [ease]="'linear'"
></ng-progress>
- [minimum]: between
0.0
to 1.0
.
Progress initial starting value, default 0.08
- [maximum]: between
0.0
to 1.0
.
Progress initial starting value, default 0.08
Automagic loading bar
If you only need a progressbar for multiple (XHR) requests, there is a simple plug and play provider. It does the trick.
import { NgProgressCustomBrowserXhr } from 'ngx-progressbar';
@NgModule({
providers: [
{ provide: BrowserXhr, useClass: NgProgressCustomBrowserXhr } ,
],
imports: [
NgProgressModule
]
})
<ng-progress></ng-progress>
The progress will start and complete automatically with your HTTP requests. no need to use NgProgressService
to call start()/done() manually.