2015-12-31 2 views
2

Я использую UI Bootstrap AngularUI, и мне нужно вызвать функцию, когда какой-либо модаль закрыт. Я знаю, что я могу вызвать функцию, когда определенный модальный экземпляр закрывается, как это:AngularUI Bootstrap modal закрыть событие для любого instace

modalInstance.result.finally(function(){ 
    console.log('Modal closed'); 
}); 

В JQuery я хотел бы сделать что-то подобное для любого экземпляра:

$(document).on('hidden.bs.modal', function() { 
    console.log('Modal closed'); 
}); 

Но как добиться того, что с AngularJS?

ответ

3

Вы могли бы сделать что-то вроде этого:

myApp.controller('ModalCtrl', ['$scope', '$modal', function($scope, $modal) { 
    $scope.open = function() { 
     var modalInstance = $modal.open({ 
      templateUrl: 'modal.html', 
      controller: 'ModalInstanceCtrl', 
      resolve: { 
       params: function() { 
        return { 
         key: 'value', 
         key2: 'value2' 
        }; 
       } 
      } 
     }); 
     modalInstance.result.then(
      function(result) { 
       console.log('called $modalInstance.close()'); 
       alert(result); 
      }, 
      function(result) { 
       console.log('called $modalInstance.dismiss()'); 
       alert(result); 
      } 
     ); 
    }; 
}]) 

И то, что вы могли бы с вашего controller.

myApp.controller('ModalInstanceCtrl', ['$scope', '$modalInstance', 'params', function ($scope, $modalInstance, params) { 
    console.log(params); 

    $scope.ok = function() { 
     $modalInstance.close('this is result for close'); 
    }; 

    $scope.cancel = function() { 
     $modalInstance.dismiss('this is result for dismiss'); 
    }; 
}]); 

Найден аккуратной скрипка над этим: http://jsfiddle.net/wjohtz0y/

+0

Hi Thalaivar, вы можете ответить на этот вопрос https://stackoverflow.com/questions/43583136/bootstrap-modal-popup-open-and-close -при-angularjs-не-рабочий – Vinoth

Смежные вопросы