簡體   English   中英

$ uibModal:從方法獲取實例

[英]$uibModal: get instance from method

我正在通過方法使用模態,例如:

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

然后以某種方法調用此函數:

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

但是如何使用方法調用使用解雇?

因為我沒有方法使用它,所以我可以關閉模​​態,所以:

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

但是當我使用方法promise時,我不知道如何使用解雇...

也許有人有主意?

您可以將模式存儲在范圍內的對象中,也可以將其移動到服務中,然后在模式對象上調用dismiss

var modalInstance;

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

當使用諾言時

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

我通常所做的是制作一個模式實例:

$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或dismiss,只需調用$scope.myModalInstance.close()$scope.myModalInstance.dismiss('cancel')

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM