2016-10-11 47 views
0

获得实例,我通过使用方法情态,如:

this.showModal = function() { 
    return $uibModal.open({...}); 
} 

,然后在一些方法我调用这个函数:

this.showModal().result.then(function (someResult) {...}); 

,但我如何使用辞退,使用方法调用?

becouse我使用它没有方法,我可以关闭我的语气如此:

$uibModal.open({...}).result.then(function (someResult) { 
    this.$dismiss(); 
}) 

,但我不知道,如何使用解雇,当我使用方法诺言......

也许有人有一个想法?

+0

'$ dismiss()'可用于模态范围。 –

回答

0

open方法返回一个带有open, closed,dismiss ,close,rendered ,returned方法的模态实例。

在你的情况下,它是this.showModal是模态实例。

所以,你可以调用close这个方法。

var self = this; 
self.showModal = function() { 
    return $uibModal.open({...}); 
} 
//close the modal 
self.showModal.close(); 
0

你可以在模式,存储在一个物体无论是在范围或移动这一项服务,然后调用关闭该模式的对象

var modalInstance; 

this.showModal = function() { 
    modalInstance = $uibModal.open({...}); 
    return modalInstance; 
} 

上使用的承诺

this.showModal().result.then(function (someResult) { 
    modalInstance.dismiss('cancel'); 
}); 
+0

我知道这 ,但我认为 - 该解决方案是一个有点难看... – brabertaser19

+0

解雇仅适用于'$'uibModalInstance @ –

+0

好brabertaser19,想不通acheiving此的另一种方式.. –

0

我最常做的是使一个模式实例:

$scope.doSomething = function(){ 
    var modalOptions = {...}; 
    openModal(modalOptions); 
} 

function openModal(modalOptions) { 
      $scope.myModalInstance = $uibModal.open(modalOptions); 
      $scope.myModalInstance.result.then(function() { 
       //success callback 
      }, function() { 
       //error callback; 
      }); 
     } 

以后如果我想调用close或dismi ss只需拨打$scope.myModalInstance.close()$scope.myModalInstance.dismiss('cancel')即可。