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>
<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>
<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 = "";
self.onClick = function() {
self.text = 'Button clicked at ' + new Date();
}
})