I’ve been encountering some difficulties with implementing the showLoaderOnConfirm
feature using sweetalert2
and ngSweetAlert
for AngularJS.
Although the code below runs smoothly and without any errors, I’m not seeing any loading animation. The alert simply disappears and reappears once the request has been processed.
$scope.passwordReset = function() {
swal({
title: 'Forgot Password?',
text: 'Enter your email address and your password will be reset and emailed to you.',
input: 'email',
showCancelButton: true,
confirmButtonText: 'Send',
confirmButtonColor: "#DD6B55",
inputPlaceholder: 'Email address',
showLoaderOnConfirm: true
}).then(function(email) {
if (email) {
AccountFactory.resetAccount(email)
.then(function(data) {
swal({
title: 'Success!',
text: 'A verification email has been sent to ' + email,
type: 'success',
confirmButtonText: 'Close',
allowEscapeKey: false
});
}, function(error) {
swal({
title: 'Email not found',
text: 'Sorry, but we could not find an account matching that email address.',
type: 'error',
confirmButtonText: 'Close',
allowEscapeKey: true
});
console.log('Failed to reset password: ', error);
});
}
});
};
I’ve attempted to adjust the preConfirm
function, but it doesn’t seem to have much of an effect. Instead of the alert disappearing, it remains on the screen without any animation.
What could be the issue here?
Here is the function that my AccountFactory
returns:
resetAccount: function(email) {
var deferred = $q.defer();
$http({
url: ApplicationConstants.apiServerPath + 'api/users/reset',
method: 'POST',
data: 'email=' + email,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
})
.success(function(data) {
deferred.resolve(data);
})
.error(function(error) {
deferred.reject(error);
});
return deferred.promise;
}