需要帮助优化无法正常工作的 angular 的 clickOutsideToClose
Need help to optimize the clickOutsideToClose of angular that is not working right
我的项目中的 md-dialog 有问题。
在所有项目对话框中,只有一个具有点击关闭功能,其余都是锁定的。我可以通过在代码中插入 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();});
});
我的项目中的 md-dialog 有问题。
在所有项目对话框中,只有一个具有点击关闭功能,其余都是锁定的。我可以通过在代码中插入 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();});
});