Есть ли способ обновить родительский контроллер angularjs uibModal и обновить его значение, не закрывая его?Я хочу обновить эту переменную сразу, а не ждать, пока uibModal закроется.Я знаю, что могу использовать функцию разрешения, но это вынуждает меня закрыть модальное окно, чтобы передать что-либо обратно в разрешение для обновления.
Я попытался передать область видимости в uibModal, чтобы обновить эту переменную.Безуспешно.
angular.module('app', [
'ui.bootstrap'
])
.controller('ctrl', function ($scope, $uibModal) {
'use strict';
var vm = this;
vm.value = false;
$scope.openModal = function () {
$uibModal.open({
template: '<div class="modal-header">' +
'<h3 class="modal-title">Hello</h3>' +
'</div>' +
'<div class="modal-body">I\'m a modal!</div>' +
'<div class="modal-footer">' +
'<button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button>' +
'<button class="btn btn-warning" type="button" ng-click="update()">Update</button>' +
'</div>',
controller: function ($scope, $uibModalInstance) {
$scope.update = function() {
console.log('update vm.value from here right after clicking the button');
}
$scope.cancel = function () {
$uibModalInstance.dismiss('cancel');
};
}
})
};
});
<!DOCTYPE html>
<html>
<head>
<link data-require="bootstrap-css@*" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" />
<script data-require="angular.js@1.5.0" data-semver="1.5.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.2.4.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-app="app" ng-controller="ctrl" class="container">
<button class="btn btn-primary" type="button" ng-click="openModal()">Open modal</button>
</body>
</html>