2016-08-08 3 views
1

私はAngularUI's modalで作業しています。は、モーダルが閉じられたときに、コントローラの変数を変更したいと思います。AngularUIのモーダルが閉じているときに何かするには?

私のモーダルは、次のようになります。私は、モーダルのクローズイベントdata-dismissに関係していますが、私は、この特定の瞬間に何かをする方法をまだ見つけていないと思います

<div class="modal fade" id="awesomeModal" role="dialog"> 
    ... 
    <button type"button" data-dismiss="modal">Close</button> 
</div> 

。私がやりたい何


は、モーダルが閉じているときに$scope.finished = true;を設定することです。

私は<button type"button" data-dismiss="modal" ng-click="finished = false>Close</button>のようなことをすることができますが、私の意見では、それを行うためのよりクリーンな方法があります。

+0

チェックドキュメント 'return' https://angular-ui.github.io/bootstrap/#/modal構文は$ modal.open({ 'であります/ * params here * /})。result.then(function(){/ * logic here * /}); ' –

+0

私は見ましたが、どう対処するのか本当に分かりません。これまで私はモーダルを非常に簡単に使用していました。 あなたはそれがどのように動作するかを知っていると思うなら、私はあなたにそれについての詳細な説明を回答として投稿しています:) – Mistalis

答えて

1

あなたは$ uibModalについて尋ねているので、ここでのモーダルcloseイベントを捕捉するために使用することができるイベントは次のとおりです。

   var modalInstance = $uibModal.open({ 
        templateUrl: 'modules/alertTemplates/redirectToModal.html', 
        controller: 'redirectToController', 
        controllerAs: 'redirectToControllerVm', 
        keyboard: false 
        } 
       }); 

       modalInstance.result.then(function() { 
        // called when you close the modal 
        // do your stuff 
       }, function() { 
        // called when you dismiss modal by clicking anywhere outside modal 
        // do your stuff 
       }); 

また、あなたがしたい場合は、テンプレートを使用しての代わりに、モーダルテンプレートをインラインで与えることができますtemplateUrl。 より良い説明については、以下のリンクを参照して、すべての構文:下

https://github.com/angular-ui/bootstrap/tree/master/src/modal/docs 
+0

このすべてが必要ですか?私はモーダルにテンプレートを使用しないので、コードはHTMLページに直接あります。申し訳ありませんが、私はばかげているかもしれませんが、私にとってはまだ不明です...:D – Mistalis

+0

ui bootstrap.jsを組み込み、コントローラに$ uibModalを注入する必要があります。 のリンクを参照してください。デモhtmlとjsが添付されています。 –

関連する問題