У меня есть приложение Angular UI, которое должно выполнять много запросов данных. Как обычно, мне нужен отзывчивый пользовательский интерфейс, даже когда вызываемые API не так быстро возвращают результаты. Это означает, что мне нужно довольно часто переводить приложение в состояние " Загрузка ... ".
Я могу сделать это, установив флаг загрузки, при котором пользовательский интерфейс Angular отключается когда состояние изменяется, но это выглядит примерно так:
$scope.requestFooData = function() {
var parameters = $scope.BuildFooParams();
//'loadingData' is a state variable that the UI uses
//for disabling regions, or showing spinners where
//and when applicable.
$scope.loadingData = true;
$http.get("API/getFoo" + parameters)
.success(function(data) {
//Handle data
$scope.loadingData = false;
})
.error(function() {
//Address the error
$scope.loadingData = false;
});
}
Это работает, но я должен помнить, что нужно интегрировать как минимум три строки кода в каждый запрос. Не только это, но мне, возможно, придется похоронить некоторые вызовы API в рамках последующих успешных вызовов API, каскадных запросов API. В этом случае было бы неплохо подключить семафор, который может определить, когда правильно устанавливать состояние загрузки. Этот лог c становится немного более сложным и запутанным при таком подходе.
Есть ли способ, что при инициализации моих контроллеров я могу внедрить метод, который срабатывает при выполнении любого веб-запроса (GET / POST / et c.) и когда результаты возвращаются, запускается другое событие для очистки состояния?