需要帮助优化无法正常工作的 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();});
});