0

こんにちは私はいくつかのURLパラメータに基づいてフォームを生成し、そのフォームを送信した後いくつかのアクションが実行されるcontrollerAを持っています。今私は別のコントローラBを作成して、ボタンを作成しました。そのボタンをクリックすると、controllerA urlをiframe srcとして含む1つのモデルポップアップが開きます。 そのモデルのポップアップで私は生成されたフォームを見ることができます。そのフォームを送信した後、私はモデルのポップアップを閉じる必要があります。他のコントローラからブートストラップモデルのポップアップを閉じる

controllerA

- Contains some logic to generate form 

controllerB

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

ここで私は、フォームを提出するのaferそのモデルを閉じることができますどのように私の質問 のですか?

このコードは私がフォームを送信する方法を持っているcontrollerAで

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

controllerB

に含まれています。ここ

は、サンプルコードです。フォームを送信した後、どのように私はコントローラBからレンダリングされる上記のポップアップを閉じることができます。

私はうまくいけば私は正しく説明したと思います。これを解決する際に私を助けてください。前もって感謝します。

答えて

0

コントローラAとコントローラBの関係は何ですか? controllerBが親コントローラがある場合
、あなたはcontrollerAで$scope.$emit('event:close')を使用して、これら2つの異なるコントローラである

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

でcontrollerBでこのイベントを受け取ることができます。基本的にポップアップの開始は、ボタンをクリックするとcontrollerBから始まります。そのポップアップでは、Submitボタンでフォームを表示しています。それをクリックした後、ポップアップを閉じる必要があります。 ControllerAはデータを送信するためにserivice呼び出しを行います。 – user2451830

+0

私は親としてアプリケーションコントローラを持っています。これらのコントローラAとコントローラBは、アプリケーションコントローラ – user2451830

+0

の子であり、コントローラAの$ scope。$ emitを使用して親コントローラの$ scope。$ onで受信し、親コントローラの$ scope。$ broadcastを使用してイベントを渡します。コントローラAを使用していますが、あなたの問題を解決するプロパティがあるため、ui-bootstrapでモーダルを使用することをお勧めします。[link](https://angular-ui.github.io/bootstrap/#/modal) –

関連する問題