有没有办法结合角度js确认和甜蜜警报(swal)

时间:2016-08-23 06:39:11

标签: javascript jquery angularjs sweetalert

在我当前的项目中,对于注销我想添加确认。为了确认,我想要甜蜜警报。我找到了确认和甜蜜警报的解决方案,但我发现很难将这两者结合起来。 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');

                }
            });
    }
}]);

我知道在另一个函数里面没有函数但我找不到其他方法。 而不是角度确认我想使用甜蜜警报。可能吗。 提前谢谢。

Code in action

2 个答案:

答案 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');          
        });
      }
    });
}

Code In Action

您也可以查看this answer,以角度实现swal警报,这将在内部处理摘要周期内容。