我的项目中的md对话框有问题。
在所有项目对话框中,只有一个具有单击关闭时关闭的功能,其余对话框被锁定。我可以通过在代码中插入 clickOutsideToClose: false
指令来锁定。
$mdDialog.show({
controller: 'sascarReportAddonsModal',
templateUrl: 'infra/template/sascar-report-addons/sascar-report-addons-modal.html',
bindToController: true,
parent: angular.element(document.body),
targetEvent: ev,
locals: {
previousModal: vm.showSideDialog,
selectedIndex: selectedIndex
},
clickOutsideToClose:true,
fullscreen: false
});
但是在指令clickOutsideToClose: true
的对话框中,它不起作用。我能够通过在对话框控制器中添加以下代码来解决此问题:
$timeout(callAtTimeout, 3000);
function callAtTimeout() {
angular.element(document).find("md-backdrop").on('click', function() {
closeDialog();
});
}
我的问题是,如何在不使用超时的情况下使这段代码更好。使angular.element(document).find("md-backdrop").on('click', function() { closeDialog();});
仅在对话框完成加载时加载。
尝试将对话框简化为下面的代码,看看是否有帮助:
$mdDialog.show({
controller: 'sascarReportAddonsModal',
templateUrl: 'infra/template/sascar-report-addons/sascar-report-addons-
modal.html',
clickOutsideToClose: true,
})
编辑:
$scope.$apply(function() {
angular.element(document).find("md-backdrop").on('click', function() {
closeDialog();});
});