angular 全局confirm确认框

全局确认框是在弹出模态框的基础上修改的。

配置

模板
angular.module('custom-template', [])
.run(["$templateCache", function($templateCache) {
  $templateCache.put("template/modal/confirmModelTemplate.html",
    '<div class="m-c">\n'+
    '  <div class="modal-header">\n'+
    '    <h4 class="modal-title">{{title}}</h4>\n'+
    '  </div>\n'+
    '  <div class="modal-body">{{content}}</div>\n'+
    '  <div class="modal-footer" style="text-align: center;">\n'+
    '    <button type="button" class="btn btn-primary" ng-click="ok()">确定</button>\n'+
    '    <button type="button" class="btn btn-warning" ng-click="cancel()">取消</button>\n'+
    '  </div>\n'+
    '</div>\n'+
    "");
}]);

然后在系统中引用定义的模板module:

var app = angular.module('myApp', ['custom-template']);
调用方法

在自定义的Common factory中定义打开确认框的方法。

angular.module('myApp').factory('Common', ['$http', '$q', '$cookieStore', '$location','$modal',
  function ($http, $q, $cookieStore, $location,$modal) {
    return {
      openConfirmWindow: function(modalTitle,modalContent,modalInstance) {
        var deferred = $q.defer();
        /*
        * modalInstance是在弹窗的基础上再弹出confirm确认框时从第一个弹窗中传进的$modalInstance,
        * 若是直接在页面上弹出confirm确认框,则不能传$modalInstance,否则会报错
        */
        var confirmModal = $modal.open({
          backdrop: 'static',
          templateUrl : 'template/modal/confirmModelTemplate.html',  // 指向确认框模板
          controller : 'ConfirmCtrl',// 初始化模态控制器
          windowClass: "confirmModal",// 自定义modal上级div的class
          size : 'sm', //大小配置
          resolve : {
            data : function(){
              return {modalTitle: modalTitle,modalContent: modalContent};//surgeonSug: $scope.surgeonSug,
            }
          }
        });
        // 处理modal关闭后返回的数据
        confirmModal.result.then(function() {
          if(!!modalInstance) {
            modalInstance.dismiss('cancel');
          }
          deferred.resolve();
        },function(){
        });
        return deferred.promise;
      }
    }
  }]);
自定义CSS
.confirmModal .modal-sm {
  width: 400px;
}
.confirmModal .modal-content {
  margin-top: 40%;
}
.confirmModal .modal-header {
  padding: 10px 15px;
}
.confirmModal .modal-body {
  padding: 10px 15px;
  border-top: 1px solid #e5e5e5;
}

使用

在页面上使用的具体方法如下:

$scope.delete = function(id) {
  var modalTitle = '提示!';
  var modalContent = '确定删除吗?';
  Common.openConfirmWindow(modalTitle,modalContent).then(function() {
    $http.delete(url+id)
      .success(function() {
        $scope.load($scope.currSelSurgeon);
        $rootScope.lxAlert['success']('删除成功!');
      }).error(function() {
        $rootScope.lxAlert['danger']('删除失败!');
      });
  });
};

在弹出的模态框中使用的具体方法:

$scope.cancel = function(){
  var modalTitle = '确定关闭吗?';
  var modalContent = '填写的信息未保存,请确认是否关闭?';
  Common.openConfirmWindow(modalTitle,modalContent,$modalInstance);
};

第一种使用一定不能传入第三个参数modalInstance,否则会报错。第二种在弹出模态框的基础上再弹出确认框必须要传入$modalInstance,用于关闭模态框。到这里整个全局确认框的使用就完成了。
如有不当的地方,请予指正!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值