Ng-confirm

by militellovincenzo

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.8/angular.js"></script>
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://code.angularjs.org/1.6.8/angular-animate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div ng-app="app">

<div ng-controller="mainController as $ctrl">
    <div>{{ $ctrl.text}}</div>
    <div>
      <button ng-click="$ctrl.onClick()" bcmea-confirm>Click me</button>
    </div>
  </div>

</div>

CSS

.row {
  background: #f8f9fa;
  margin-top: 20px;
}

.col {
  border: solid 1px #6c757d;
  padding: 10px;
}

.finish-checkbox {
  margin-left: .2em;
  width: 25px;
  height: 20px;
  margin-top: 0;
}

}

JavaScript

angular.module('bcmea-helper.confirm',[])
.directive('bcmeaConfirm', bcmeaConfirm);

bcmeaConfirm.$inject = [];

function bcmeaConfirm() {
  // Usage:
  //
  // Creates:
  //
  var directive = {
    bindToController: true,
    controller: bcmeaConfirmController,
    controllerAs: 'vm',
    priority: -1,
    restrict: 'A'
  };
  return directive;

}

bcmeaConfirmController.$inject = ['$element', '$window'];

function bcmeaConfirmController($element, $window) {
  $element.on('click', function(e) {
    var message = $element.attr("bcmea-confirm") || 'Are you sure?' ;
    if (message && !$window.confirm(message)) {
      e.stopImmediatePropagation();
      e.preventDefault();
    }
  });
}


angular.module('app', ['bcmea-helper.confirm'])
  .controller('mainController', function mainController() {
    var self = this;
    self.text = "asdasdasd";

    self.onClick = function() {
      self.text = new Date();
    }
  })