Я не уверен, что вы можете сделать это явно, просто изменив значения этих атрибутов, так как они не связаны в обоих направлениях.Но есть атрибут preCloseCallback
, который можно установить для предотвращения закрытия на основе какой-либо локальной переменной.Поэтому перед запросом я должен установить некоторую переменную, указывающую, что запрос выполняется.Когда запрос завершится, сбросьте эту переменную.Затем в preCloseCallback
проверьте, установлена ли эта переменная.Вот простой пример:
$scope.toggleCloseable = function() {
$scope.closeable = !$scope.closeable;
}
$scope.openDialog = function() {
ngDialog.open({
template: 'firstDialogId',
className: 'ngdialog-theme-default',
showClose: true,
scope: $scope,
preCloseCallback: function() {
return $scope.closeable;
}
});
}
Вот простой плункер, в котором эта переменная задается нажатием кнопки в модальном режиме, но ее можно также легко установить до и после выполнения запроса.Вы увидите, что когда флаг closeable
имеет значение false, ни одно из закрытых действий не работает, но когда оно истинно, оно работает как обычно.
https://plnkr.co/edit/d4m0tryFdm8vWWgh7a4j