0

嗨,我有一個controllerA根據一些URL參數生成一個表單,並在提交表單後將執行一些操作。現在我創建了另一個控制器B,並且創建了一個按鈕。點擊該按鈕後,將打開一個包含controllerA url作爲iframe src的模型彈出窗口。 在該模型彈出我能夠看到生成的表單。提交表單後,我必須關閉模型彈出窗口。從另一個控制器關閉引導模型彈出

controllerA

- Contains some logic to generate form 

controllerB

- Contains a model popup with embed iframe. iframe src as controllerA URL 

這裏是我的問題 我怎麼能關閉模式AFER提交表單?

下面是示例代碼:

這個代碼包含在controllerB

$scope.addmemPopup = function() { 
     $scope.showpopup = $modal.open({ 
      templateUrl: 'addmem.tpl.html', 
      size: 'lg', 
      backdrop: 'static', 
      keyboard: false, 
      windowClass: 'add-mem' 
     }); 
    } 

    $scope.getIframeurl = function() { 
     return '#/genmem/?mem_id='+$scope.mem.id+'&z_id=' + $scope.mem.zip; 
    }; 
    $scope.hidePopup = function() { 
     $scope.showpopup .close(); 
    }; 

在controllerA我必須提交表單的方法。提交表單後,我如何關閉從controllerB呈現的上述彈出窗口。

我想我希望我解釋正確。請幫我解決這個問題。提前致謝。

回答

0

控制器A和控制器B有什麼關係?
如果controllerB是父控制器,你可以使用controllerA $scope.$emit('event:close')

$scope.$on('event:close',function(evt) { 
    $scope.showpopup.close(); 
}) 
+0

這是兩個不同的控制器接收controllerB此事件。點擊一個按鈕後,基本上彈出式啓動將在控制器B中開始。在那個彈出窗口中,我使用Submit按鈕顯示一個表單。點擊彈出窗口後關閉。 ControllerA進行一次服務調用以提交數據。 – user2451830

+0

我有一個應用程序控制器作爲父。這些控制器A和控制器B是孩子應用控制器 – user2451830

+0

您可以使用$ scope。$在控制器A中發出並在父控制器中使用$ scope。$ on接收,然後在父控制器中使用$ scope。$ broadcast將事件傳遞給控制器A,但我建議使用ui-bootstrap模式,因爲它有屬性來解決你的問題[link](https://angular-ui.github.io/bootstrap/#/modal) –