dialogService
by long2know
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-animate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-loader.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-sanitize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-cookies.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-touch.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-resource.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.1/ui-bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.1/ui-bootstrap-tpls.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.13/angular-ui-router.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui-ieshiv.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui/0.4.0/angular-ui.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css">
<div ng-controller="myCtrl as vm">
<button ng-click="vm.openSimpleModal()">Open Simple</button>
<button ng-click="vm.openFormModal()">Open Complex</button>
<br />
<h3>Shared modal model</h3>
<pre>{{ vm.modalFormModel | json }}</pre>
</div>
<script type="text/ng-template" id="modalSimple.html">
<div class="modal-body">
<h3>Confirm Cancellation</h3>
<p>All of your changes will be lost. Are you sure you want to cancel your changes?</p>
</div>
<div class="modal-footer">
<button class="button default" ng-click="cancel()">Cancel</button>
<button class="button...
CSS
.modal-dialog {
margin-top: 20px;
}
JavaScript
(function () {
angular.module('myApp.services', ['ngResource', 'ngAnimate']);
angular.module('myApp.controllers', []);
var myApp = angular.module('myApp', [
'myApp.services',
'myApp.controllers',
'ngSanitize',
'ui.bootstrap',
'ui']);
var dialogService = function ($sce, $modal) {
// Generic wrapper around modal opening
function openDialog(template, controller, size) {
return $modal.open({
templateUrl: template,
controller: controller,
size: size
});
}
function openDialogWithModel(templateUrl, controller, model, windowClass, isInlineHtml, size) {
if (!size) {
size = 'sm';
}
if (isInlineHtml) {
return $modal.open({
controller: controller,
template: templateUrl,
resolve: {
dialogModel: function () {
return model;
}
},
windowClass: windowClass,
size: size
});
} else {
return $modal.open({
controller: controller,
templateUrl: templateUrl,
resolve: {
dialogModel: function () {
return model;
}
},
windowClass: windowClass,
size: size
});
}
};
return {
openDialog: openDialog,
openDialogWithModel: openDialogWithModel
};
};
var myController = function ($log, ds) {
var vm = this;
vm.modalFormModel = {
firstname: 'original',
lastname: 'original'
};
vm.openSimpleModal = function ()...