【发布时间】:2018-10-11 11:11:47
【问题描述】:
是否可以更改打开对话框的选项?
具体来说,我想将showClose、closeByEscape 和closeByDocument 设置为false。
原因是我在对话框中有一个表单。单击保存,我向服务器发出请求。同时,我禁用了按钮,还想确保对话框在没有响应之前不能关闭。但我希望用户能够在点击 Save 之前轻松关闭对话框。
【问题讨论】:
是否可以更改打开对话框的选项?
具体来说,我想将showClose、closeByEscape 和closeByDocument 设置为false。
原因是我在对话框中有一个表单。单击保存,我向服务器发出请求。同时,我禁用了按钮,还想确保对话框在没有响应之前不能关闭。但我希望用户能够在点击 Save 之前轻松关闭对话框。
【问题讨论】:
我不确定您是否可以通过简单地更改这些属性的值来明确地做到这一点,因为它们似乎没有双向绑定。但是有一个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 标志为 false 时,所有关闭操作都不起作用,但当它为 true 时,它照常工作。
【讨论】: