离子v1关闭所有打开的模态

时间:2017-07-31 12:00:27

标签: javascript angularjs ionic-framework

这是我的问题,我在$rootScope内部有一个函数,用于许多不同的离子模态。该功能切换状态,当它切换时,我想自动关闭当前打开的模态。

问题是我无法为每个模态编写(例如)$scope.someModal.close();,因为它们都有不同的名称并且位于不同的范围内。

我可以执行something.closeAllModals()something.closeCurrentModal()之类的任何功能吗?

2 个答案:

答案 0 :(得分:1)

您可以将模态传递给$ rootScope函数:

 $rootScope.functionName($scope.someModal);

然后从函数

关闭它
$rootScope.functionName = function(modal) {
  modal.close();
}

答案 1 :(得分:1)

在文件中调用此函数。

function closeAllwindows(isTrue) {
        if (!isTrue)
            $uibModalStack.dismissAll(); if you are using uib modal          
        $rootScope.$emit("CloseWindows", isTrue);
}

您将此$rootScope.$on用于任何.js文件,它将$rootScope.$emit来自任何地方

  var closeWindows = $rootScope.$on("CloseWindows", function (name, isTrue) {
        if (isTrue) {
            closeationsheets(); // you can close the action sheet
            if (alertPopup)
                alertPopup.close(); // you can close the alert
        }
        else {           
            closeionicwindows();
            closeationsheets();
            if (alertPopup)
                alertPopup.close();
        }
    });