首页 > 解决方案 > 对话框打开时 ngDialog 更改选项

问题描述

是否可以更改打开对话框的选项?

具体来说,我想设置showClose,closeByEscapecloseByDocumentto false

原因是我在对话框中有一个表单。单击Save时,我向服务器发出请求。同时,我禁用了按钮,并且还想确保在有响应之前不能关闭对话框。但我希望用户能够在单击Save之前轻松关闭对话框。

标签: angularjsng-dialog

解决方案


我不确定您是否可以通过简单地更改这些属性的值来明确地做到这一点,因为它们似乎没有双向绑定。但是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;
      }
    });
  }

这是一个简单的 plunker,其中该变量是通过在模式中按下按钮来设置的,但这可以在发出请求之前和之后轻松设置。您会看到,当closeable标志为假时,关闭操作都不起作用,但当它为真时,它照常工作。

https://plnkr.co/edit/d4m0tryFdm8vWWgh7a4j


推荐阅读