如何从外部控制器关闭角度模态

时间:2016-06-20 15:29:29

标签: javascript angularjs

我正在使用angular-modal-service打开模态。

$scope.showLoader = function(message) {
    ModalService.showModal({
        templateUrl: "/templates/loader.html",
        controller: "ctrl",
        inputs: {
            message: "loading"
        }
    }).then(function(modal) {
        modal.close.then(function(result) {
            if (result) {
                // do something
            }
        });
    });
}

打开此模态后,我想调用一个函数将其从主控制器中关闭

$scope.closeLoader = function() {
    // close the modal here
}

我该怎么做?

2 个答案:

答案 0 :(得分:1)

当模态完全加载时,您可以将模态闭合函数指定给$scope。我添加了一个虚函数,如果模态已关闭,它就不会执行undefined。如果可以肯定的话,你也可以跳过它,这是不可能的。

$scope.closeLoader = angular.noop;

$scope.showLoader = function(message) {
    ModalService.showModal({
        templateUrl: "/templates/loader.html",
        controller: "ctrl",
        inputs: {
            message: "loading"
        }
    }).then(function(modal) {
        $scope.closeLoader = modal.close;
    });
};

答案 1 :(得分:-2)

以下是代码:

app.controller('MainController', function($scope, close) {

 $scope.close = function(result) {
    close(result, 500); // close, but give 500ms for bootstrap to animate
 };

});

HTML

<button type="button" ng-click="close('No')" class="btn btn-default" data-dismiss="modal">No</button>