NProgress provides decent and attractive Javascript library to get a nice progress bar similar to the Youtube one. This is very sleek and classy, I love that and it’s very useful for the Single Page Applications.
You can download NProgress.js from http://ricostacruz.com/nprogress/
If you’re doing the development in Visual Studio you can install the NProgress from the NuGet. It is very simple library. When you install NProgress you get all the other dependencies as well. NProgress has one simple CSS file which very easy to work with and handle.
It has 4 methods.
- NProgress.start() – to start the progress bar
- NProgress.set(0.5) – set the progress bar value; ranges from 0 to 1
- NProgress.inc() – increment the progress bar value.
- NProgress.done() – complete the load process and hides the bar
Let’s see how to use with Angular.js. Better practice is to use the progress bar in background operations or when the UI wait happens. In this sample I didn’t use $http service of the Angular I just used $scope.
The HTML goes like this.
nprogress.css is the style sheet where you can control the behavior of the progress bar. It also contains the code for the spinner. If you want you can disable the spinner by simply commenting the code. Spinner only has start and done methods. HTML contains 3 Javascript references nprogress.js, angular.js and the custom controller AppController.js.
Code for AppController.js
You can this is a very crud code sample, when request data from web service using $http service, you can call NProgress start and done methods appropriately.
I also did some color changes in the nprogress.css file and made the progress bar to red.