在我当前的项目中,对于注销我想添加确认。为了确认,我想要甜蜜警报。我找到了确认和甜蜜警报的解决方案,但我发现很难将这两者结合起来。 HTML:
<a href="javascript:void(0);" ng-click="Logout()"><i class="fa fa-sign-out" aria-hidden="true"></i> Logout</a>
JS:
app.controller('LogoutCtrl', ['$scope', '$location', 'localStorageService', function($scope, $location, localStorageService) {
$scope.Logout = function() {
swal({
title: "Are you sure to logout?",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: '#DD6B55',
confirmButtonText: 'Yes',
cancelButtonText: "No",
closeOnConfirm: false,
closeOnCancel: false
},
function(isConfirm) {
if (isConfirm) {
localStorageService.clearAll();
$location.path('/login');
}
});
}
}]);
我知道在另一个函数里面没有函数但我找不到其他方法。 而不是角度确认我想使用甜蜜警报。可能吗。 提前谢谢。
答案 0 :(得分:0)
可以一个函数在javascript中的另一个函数
private boolean isValidEmailID(String email) {
String PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern pattern = Pattern.compile(PATTERN);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
答案 1 :(得分:0)
你有特殊情况,你在location
路径中进行更改而不让角度知道某些事情发生了变化,最终消化周期不会起火。您应该手动触发摘要周期,以便通过角度路由器进行location
更改。对于运行摘要周期,您可以使用$timeout
(在使用之前注入控制器内)
var ctrl = function($scope, $location,$timeout) {
swal({
title: "Are you sure to logout?",
text: "",
type: "warning",
showCancelButton: true,
confirmButtonColor: '#DD6B55',
confirmButtonText: 'Yes',
cancelButtonText: "No",
closeOnConfirm: true, //it should be true to close popup on confirm
closeOnCancel: true //it should be true to close popup on cancel
},
function(isConfirm) {
if (isConfirm) {
$timeout(function(){
localStorageService.clearAll();
$location.path('/login');
});
}
});
}
您也可以查看this answer,以角度实现swal
警报,这将在内部处理摘要周期内容。