Я следил за этим сообщением, чтобы реализовать аналогичное изображение загрузчика ajax в проекте:
У моей реализации есть несколько отличий:
- Я использую
$rootScope
toemit
, а неbroadcast
, а также я использую$rootScope
в директиве для обработки события. - Из-за специфики проекта мне нужно отпереть директиву
$rootScope.$on
слушателей сразу после первого события, которое запускается (либо для показа, либо скрывается) внутри обработчика событий. - Я запускаю только событие show/hide. Показывать по первому запросу HTTP, скрыть, когда счетчик достигнет 0.
Я считаю, что это основные отличия от связанного сообщения, не уверен, что они имеют отношение к моему вопросу, но на всякий случай...
Когда обрабатывается событие loader hide, загрузчик пропал, и я не буду показывать его снова, если страница не обновлена, но у меня все еще есть фоновые http-запросы для обновления данных на текущей странице. Эти запросы будут по-прежнему перехватываться и запускать новые события show/hide, которые больше не требуются/обрабатываются. Мне нужно только первое шоу и сначала скрыть, что он.
Какой правильный способ удалить HTTP-перехватчик, который я добавил в $httpProvider
после первого события hide?
Я знаю, что мы добавляем перехватчик с помощью $httpProvider.interceptors.push()
, но я не уверен, как его вытащить, когда мне больше не нужен этот перехватчик.