2016-07-04 2 views
1

Я делаю мой проект в angularjs как я могу добавить один общий загрузчик или прогресс бар для всего проекта с помощью CSS вместо вызова показать/скрыть блок функции для каждого класса div.как я могу добавить один общий загрузчик или прогресс бар для всего проекта

ответ

0

Для этого вам нужно написать перехватчик. Чтобы узнать о перехватчике, обратитесь: https://docs.angularjs.org/api/ng/service/ $ http

Но кто-то уже выполнил все работы, поэтому зачем изобретать колесо! http://chieffancypants.github.io/angular-loading-bar/

+0

Не удалось создать экземпляр модуля inspinia из-за: Ошибка: [$ инжектором: modulerr] http://errors.angularjs.org/1.4.7/$ инжектор/modulerr? p0 = o ...) при ошибке (родной) по адресу http: // localhost: 5000/js/plugins/common/angular.min.js: 6: 416 по адресу http: // localhost: 5000/js/plugins/common/angular.min.js: 38: 184 at m (http: // localhost: 5000/js/plugins/common/angular.min.js: 7: 322) at h (http : // localhost: 5000/js/plugins/common/angular.min.js: 37: 275) – Lakshman

+0

Спасибо praveen Я получаю эту ошибку после выполнения инструкций по ссылке http://chieffancypants.github.io/angular-loading-bar/ – Lakshman

+0

Thanq теперь работает. – Lakshman

0

Пока вы не получите ответ вы можете поставить ожидания диалога .. после получения ответа вы можете скрыть диалог .. Вот ссылка простого диалога с помощью JQuery waitingDialog

И этот диалог может лучше всего использовать с угловой, и вы можете изменить его в соответствии с вашим требованием так удачи ..

ли это что-то вроде этого

angular.module('app').factory('httpInterceptor', ['$q', '$rootScope', 
    function ($q, $rootScope) { 
     var loadingCount = 0; 

     return { 
      request: function (config) { 
       if(++loadingCount === 1) $rootScope.$broadcast('loading:progress'); 
       return config || $q.when(config); 
      }, 

      response: function (response) { 
       if(--loadingCount === 0) $rootScope.$broadcast('loading:finish'); 
       return response || $q.when(response); 
      }, 

      responseError: function (response) { 
       if(--loadingCount === 0) $rootScope.$broadcast('loading:finish'); 
       return $q.reject(response); 
      } 
     }; 
    } 
]).config(['$httpProvider', function ($httpProvider) { 
    $httpProvider.interceptors.push('httpInterceptor'); 
}]); 

Затем используйте событие, связанное с $rootScope в любом месте (предпочтительнее использовать в директиве или запустить блок app.js):

$rootScope.$on('loading:progress', function(){ 
    // show loading gif 
}); 

$rootScope.$on('loading:finish', function(){ 
    // hide loading gif 
}); 

Вы можете прочитать об этом здесь codingsmackdown

+0

Это не сработает для кучи контроллеров. Мне нужен загрузчик, который нужно автоматически вызывать, когда возникают HTTP-запросы, потому что я не хочу писать waitDialog для каждого контроллера отдельно. – Lakshman

+0

вы можете позвонить этому, когда вы позвоните в службу поддержки, и в ответ вы можете скрыть его. Меня устраивает. Можете ли вы сказать мне, где именно он не работает для вас? – Rakeschand

+0

В нашем проекте у меня есть почти 50 контроллеров, и каждый контроллер имеет 10 служебных вызовов, если мне нравится, поскольку я предложил мне скрывать/просматривать windowDialog для каждого вызова службы, так что это не очень хороший подход.Мне нужно решение, например, когда HTTP-запрос поднял windowDialog, должен быть видимым, и после получения ответа он должен быть скрыт для всех контроллеров – Lakshman

0

Вы можете использовать угловую загрузку -bar http://chieffancypants.github.io/angular-loading-bar/#

Это лучший индикатор прогресса, работающий в фоновом режиме.

Вот документация http://angular-js.in/loading-bar/

Также демка доступна там.

Чтобы изменить цвет бара использования загрузки CSS

#loading-bar .bar { 
    background-color: #2CA01C; 
} 
+0

спасибо, что у меня есть – Lakshman

+0

его работа! но можете ли вы рассказать мне, как добавить свой собственный цвет для панели загрузки по умолчанию? – SanjanaHE

+0

Вам необходимо добавить css на # loading-bar .bar { background-color: # 2CA01C; } –

Смежные вопросы