У меня есть модель Item
с такими методами, как delete
, rename
и т.д. Это асинхронные методы, поэтому, пока один выполняется, я показываю spinner на своих представлениях. Поскольку в модели Item
много методов асинхронизации, я вынужден всегда делать это в моем контроллере:
function delete() {
isRequesting = true;
item.delete().then(function() {
isRequesting = false;
}
}
function rename() {
isRequesting = true;
item.rename().then(function() {
isRequesting = false;
}
}
Эти requesting=
заявления загромождают мой код, а также есть возможность забыть его указать. У меня также есть singleton fileNavigator
со многими асинхронными методами, поэтому здесь я использовал события для управления запросами:
fileNavigator.on(FileNavigatorEvents.REQUESTING, function (event, requesting) {
isRequesting = requesting;
});
И мне больше не нужно думать о isRequesting
при вызове fileNavigator
async fileNavigator
. Мой вопрос заключается в том, есть ли какой-либо подобный шаблон, который я могу использовать для экземпляров, отличных от Item
One?
Вы используете $ resource? Я бы предложил Restangular, и если вы используете Restangular, у них есть Interceptors Request and Response, чтобы автоматически отключать трансляции, чтобы показать и спрятать Spinner.
Проверьте это: restangular: возможно ли иметь индикатор выполнения?