AngularJS路由之ui-router(三)
阿新 • • 發佈:2018-12-27
一、為ui-router新增進度條
在使用動態控制器或者ajax,新增資料的時候需要進度條提示,
我們可以使用路由狀態的事件新增全域性進度條提示
$stateChangeStart: 當狀態開始改變時觸發
$stateChangeSuccess:
當狀態改變結束時觸發
二、例項1,建立一個進度條指令
// Route State Load Spinner(used on page or content load) MetronicApp.directive('ngSpinnerBar', ['$rootScope', '$state', function($rootScope, $state) { return { link: function(scope, element, attrs) { // by defult hide the spinner bar element.addClass('hide'); // hide spinner bar by default // display the spinner bar whenever the route changes(the content part started loading) $rootScope.$on('$stateChangeStart', function() { element.removeClass('hide'); // show spinner bar }); // hide the spinner bar on rounte change success(after the content loaded) $rootScope.$on('$stateChangeSuccess', function() { element.addClass('hide'); // hide spinner bar $('body').removeClass('page-on-load'); // remove page loading indicator Layout.setAngularJsSidebarMenuActiveLink('match', null, $state); // activate selected link in the sidebar menu // auto scorll to page top setTimeout(function () { App.scrollTop(); // scroll to the top on content load }, $rootScope.settings.layout.pageAutoScrollOnLoad); }); // handle errors $rootScope.$on('$stateNotFound', function() { element.addClass('hide'); // hide spinner bar }); // handle errors $rootScope.$on('$stateChangeError', function() { element.addClass('hide'); // hide spinner bar }); } }; } ])
更多: