angularjs $modal close modal

John picture John · Sep 16, 2014 · Viewed 83.2k times · Source

Im trying to make an angularjs Modal service. I have an controller that opens some modal, in that modal i call original controller functions or access some variables, this part i can make it already. I just cant close modal without clicking cancel or ok buttons, o want to make some operations in the modal, call some werbservices and the close modal manually. Can anyone help me?

I made an working plunker here: plunker

var modalInstance = $modal.open({
              templateUrl: 'myModalContent2.html',
              controller: ModalInstanceCtrl,
              size: size,
              scope: $scope

            });

Answer

Benjamin Conant picture Benjamin Conant · Apr 17, 2015

To close a $modal that you have opened you can follow these steps.

1) Inject $modalInstance into the controller that you specified when you created the modal. In your case you called it ModalInstanceCtrl.

2) Have a function in your ModalInstanceCtrl that calls .close() on $modalInstance.

your ModalInstanceCtrl should look something like this

angular.module('myCoolApp')
  .controller('ModalInstanceCtrl', function ($scope, $modalInstance) {

    $scope.closeModal = function(){
       $modalInstance.close();
    }

});