2016-10-20 3 views
0

私はブートストラップモーダルを使用していますが、それらの機能をすべて利用することはできません。uibmodalinstance結果/ reason/close/dismiss

私のモーダルは基本的に編集ポップアップです。したがって、それはをキャンセルします。をキャンセルします。

  • それは保存 Dだ場合は、成功し、それが閉じた後、別のページへの親 べきルートをすべきです。
  • をキャンセルすると、終了しますが再ルーティングは行われません。

物事私は本当に得ることはありません:

  • 私は再ルーティングするかどうかを決定するためにこれを使用することができた場合、それが
  • を却下だとき、私は「理由」をキャプチャ/閉じどのよう
  • /result/dismissは一緒に働きます。

私は多くの回答を見てきましたが、どうやって一緒に扱われるか分かりません。

 var modalInstance = $uibModal 
     .open({ 
      templateUrl: 'cartModalContent', 
      controller: 'cartModalInstanceController', 
      controllerAs: 'cartModalVm', 
      resolve: { 
       payData: vm.PayData 
      } 
     }) 
     .closed 
      .then(function(){ 
        $state.go('layout.package-labels'); 
      }); 
     modalInstance.result.then(function() { 
      // ?? 
     }); 

答えて

1

疑わしいときalways go to the docs

近い(結果)(タイプ:機能)モーダルセクションの下には、このテキスト

openメソッドは、モーダルインスタンスを返し、次のプロパティを持つオブジェクトを検索します - 閉じるために使用することができますモーダル、結果を渡す。

dismiss(reason)(型:function) - 理由を渡してモーダルを解除するために使用できます。

結果(タイプ:約束) - モーダルが閉じられたときに解決され、モーダルが閉じられたときに拒否されます。

オープン(タイプ:約束) - コンテンツのテンプレートをダウンロードしてすべての変数を解決した後にモーダルが開いたときに解決されます。

closed(型:promise) - モーダルが閉じられ、アニメーションが完了すると解決されます。

レンダリング(タイプ:約束) - モーダルがレンダリングされるときに解決されます。それはあなたが$uibModal.openメソッドを呼び出す(およびそれにモーダル定義オブジェクトを渡す)とき

  1. ある意味何

あなたはモーダルインスタンス

  • を取得します、あなたはモーダルインスタンスからいくつかの約束をアクセスすることができます。これらの約束はあなたがモーダルで行うことに応じて行動します。
  • あなたのモーダルがdismissのとき、result約束は拒否され、closeモーダルになると解決されます。
  • だからあなたのコードは

    var modalInstance = $uibModal.open({ 
        animation: true, 
        templateUrl: 'template.html', 
        controller: 'modalCtrl', 
        controllerAs: '$ctrl', 
        size: size, 
        appendTo: parentElem, 
        resolve: { 
        info: function() { 
         return '42'; 
        } 
        } 
    }); 
    
    modalInstance.result.then(function (resolvedResponse) { 
        $state.go('whereever') 
    }, function (rejectionResponse) { 
        // do something else 
    }); 
    

    のようなものを見てする必要がありますそして、あなたのユースケースは、シンプルOK /ダイアログをキャンセルしているので、あなたはとても

    <button class="btn btn-primary" type="button" ng-click="$close('ok')">OK</button> 
    <button class="btn btn-warning" type="button" ng-click="$dismiss('cancel')">Cancel</button> 
    
    よう close/ dismissに建てられた式を使用することができます

    と閉じるときには、

    modalInstance.result.then(function (resolvedResponse) { 
        // resolvedResponse = 'ok' 
    }, function (rejectionResponse) { 
        // rejectionResponse = 'cancel' 
    });