Вот мой запрос ajax,
Я хотел показать загрузчик. Я здесь, но я не понимаю.
Я просто хотел показать spinner во время $http.post
и скрыть после того, как сообщение будет сделано.
Что-то вроде angular.element('#mydiv').show()
и angular.element('#mydiv').hide()
внутри вызова. В каком месте я должен указать, чтобы показать #mydiv
во время публикации.
Вот мой призыв
$scope.doVerify={email:'',password:''};
$scope.doVerify = function ()
{
email = $scope.verify.useremail;
password = $scope.verify.password;
$scope.data.show = false;
$http.post('VerifyUser', { email: email, password: password}).then(function (results)
{
$scope.data.show = true
if(results.data=='success')
{
$location.path('registration');
}
else
{
$scope.data.msg = 'Incorrect Password'
}
});
};
Где я должен поставить angular.element('#mydiv').show()
и angular.element('#mydiv').hide()
для загрузчика?
angular.element('#mydiv').show()
должен идти до того, как вы сделаете $ http call и angular.element('#mydiv').hide()
должно идти успешно и обратные вызовы.
angular.element('#mydiv').show(); // show loading spinner
$http.post('VerifyUser', { email: email, password: password}).then(function (results) {
angular.element('#mydiv').hide(); // hide loading spinner
});
Я думаю, что лучшим решением для этого является добавление счетчика в HTML следующим образом:
<div ng-show="spinnerVisibility" class="spinner></div>
а затем spinnerVisibility
переменной spinnerVisibility
в контроллере до/после создания сообщения. Пример:
$scope.spinnerVisibility = true;
$http.post('VerifyUser', { email: email, password: password}).then(function (results) {
$scope.spinnerVisibility = false;
});
spinner
медленно появлялся как потухший или что-то в этом роде?
angular.element('#mydiv').show()
должен войти в определение вашего перехватчика. Перехватчики вставляются внутри конфигурационного блока углового модуля. Именно так оно и было сделано здесь.
angular.element('#mydiv').hide()
необходимо войти в ответ службы $ http (внутри блока 'then'
).
Пример, на который вы ссылаетесь, делает это именно так, как должен.
Здесь Как вы можете показать spinner в своем коде. показать или скрыть ваш img/icon whre $ scope.prograssing var sets.
$scope.doVerify={email:'',password:''};
$scope.doVerify = function ()
{
email = $scope.verify.useremail;
password = $scope.verify.password;
$scope.data.show = false;
$scope.sendAjax = function() {
$scope.prograssing = true; // show spinner here
$http.post('VerifyUser', { email: email, password: password}).then(function (results)
{
$scope.data.show = true
if(results.data=='success')
{
$location.path('registration');
$scope.prograssing = false; // hide spinner when successful
}
else
{
$scope.data.msg = 'Incorrect Password';
$scope.prograssing = false; // hide spinner when unsuccessful
}
});
};
$scope.sendAjax();
};
#mydiv
появлялся и исчезал медленно ..?