Ответ 1
Это работает для щелчка по фону и нажатия клавиши esc, если вы выбираете это.
var modalInstance = $modal.open({
templateUrl: '/app/yourtemplate.html',
controller: ModalInstanceCtrl,
windowClass: 'modal',
keyboard: true,
resolve: {
yourResulst: function () {
return 'foo';
}
}
});
var ModalInstanceCtrl = function ($scope, $modalInstance, yourResulst) {
var constructor = function () {
// init stuff
}
constructor();
$modalInstance.result.then(function () {
// not called... at least for me
}, function () {
// hit here... clean up or do whatever
});
// VVVV other $scope functions and so on...
};
ОБНОВЛЕНИЕ: альтернативный подход
Я понятия не имею, почему этот способ не документирован на http://angular-ui.github.io/bootstrap/... но я нахожу его намного лучше. Теперь вы можете использовать этот контроллер страницы или использовать определенный контроллер с контроллером в качестве синтаксиса. Вы могли бы даже использовать ng-include для содержимого модального, если хотите разделить на html. Следующие действия без JS, необходимые в контроллере для установки/настройки модального, если у вас есть bootstrap/bootstrapUI, включенный в ваш проект/сайт
<div class="row">
<button class="btn btn-default" data-toggle="modal" data-target="#exampleModal">Open Example Modal</button>
</div>
<div class="modal fade" id="exampleModal" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">Close</button>
<h2 class="modal-title" id="exampleModalLabel">Modal Example</h2>
</div>
<div class="modal-body" style="padding-bottom:0px;">
<h3>model markup goes here</h3>
</div>
</div>
</div>
</div>