【发布时间】:2016-09-02 05:46:00
【问题描述】:
我在让 showLoaderOnConfirm 使用 sweetalert2 和 ngSweetAlert 用于 AngularJS 时遇到问题。
下面的代码可以正常执行,没有错误,但是,我没有等待动画。请求返回后,警报将消失,然后再次弹出。
$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 );
});
}
});
};
我尝试过使用preConfirm 函数,但这没什么区别。警报不会消失,而是会保留在屏幕上,但仍然没有动画。
我哪里错了?
我的AccountFactory 返回以下函数:
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;
}
【问题讨论】:
标签: javascript angularjs sweetalert sweetalert2