ngDialog изменить параметры при открытом диалоге - PullRequest
0 голосов
/ 11 октября 2018

Можно ли изменить параметры открытого диалога?

В частности, я хочу установить showClose, closeByEscape и closeByDocument на false.

Причинаэто то, что у меня есть форма в диалоге.При нажатии Сохранить я делаю запрос к серверу.В то же время я отключаю кнопки, а также хочу убедиться, что диалог не может быть закрыт до тех пор, пока не будет получен ответ.Но я хочу, чтобы пользователь мог легко закрыть диалоговое окно, прежде чем нажать Сохранить .

1 Ответ

0 голосов
/ 11 октября 2018

Я не уверен, что вы можете сделать это явно, просто изменив значения этих атрибутов, так как они не связаны в обоих направлениях.Но есть атрибут 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

...