0

背景:關閉使用angulajs UI模式服務創建一個模式的javascript

我有我的angularjs應用程序中使用的模式服務。此服務顯示我的應用程序中的模式,它工作正常。現在我想使用相同的模式服務爲我顯示進度條。

問題:

我要動態關閉使用JavaScript代碼的模式(無需任何用戶點擊)。我無法弄清楚如何做到這一點。

這樣,當處理完成時模態進度條可以關閉。這不涉及用戶點擊(全部由系統控制)

ModalService代碼:

var modalService = function($modal,$sce){ 
var myModal; 
     var modalDefaults = { 
      backdrop: true, 
      keyboard: true, 
      modalFade: true, 
      templateUrl: '../ECommon/views/modal.html' 
     }; 

     var modalOptions = { 
      closeButtonText: 'Close', 
      actionButtonText: 'OK', 
      headerText: 'Proceed?', 
      bodyText: 'Perform this action?', 
      showFooter: true 
     }; 

     this.showModal = function (customModalDefaults, customModalOptions) { 
      if (!customModalDefaults) customModalDefaults = {}; 
      customModalDefaults.backdrop = 'static'; 
      myModal = this.show(customModalDefaults, customModalOptions); 
      return myModal; 
     }; 

     this.show = function (customModalDefaults, customModalOptions) { 
      //Create temp objects to work with since we're in a singleton service 
      var tempModalDefaults = {}; 
      var tempModalOptions = {}; 

      //Map angular-ui modal custom defaults to modal defaults defined in service 
      angular.extend(tempModalDefaults, modalDefaults, customModalDefaults); 

      //Map modal.html $scope custom properties to defaults defined in service 
      angular.extend(tempModalOptions, modalOptions, customModalOptions); 

      if (!tempModalDefaults.controller) { 
       tempModalDefaults.controller = function ($scope, $modalInstance) { 
        $scope.modalOptions = tempModalOptions; 
        $scope.modalOptions.ok = function (result) { 
         $modalInstance.close(result); 
        }; 

        $scope.modalOptions.close = function (result) { 
         $modalInstance.dismiss('cancel'); 
        }; 

       } 
      } 

      return $modal.open(tempModalDefaults).result; 
     }; 
} 

從控制器呼叫觸發對話框:

$scope.logout = function(){ 
     var modalOptions = { 
      closeButtonText: 'W', 
      actionButtonText: 'WLogout', 
      headerText: 'Logout', 
      bodyText: "<h1>WELCOME </h1>" 
     }; 

     var modal = modalService.showModal({}, modalOptions).then(function (result) { 
     console.log(result); 
     }); 
} 

回答

0

我挖掘到doc並發現您可以使用$ modalStack服務在任何地方關閉打開的模式:)

因此,使用

$modalStack.dismiss("Close"); 
當你的進度完成

PS

: - 不要忘了DI注入$ modalStack。

+0

我試圖把提到的行放到我的代碼中。但沒有發生。 – user1455719 2015-04-02 00:34:03