2

AngularJSモーダルがモーダルのコントローラーロジックで閉じたり閉じたりするのを防ぐ方法はありますか?

私が望むのは、ユーザーがモーダルを閉じ、モーダル内のフォームに保存されていないデータが含まれているときに警告を表示することです。

公式ドキュメントで使用できる before close イベントまたは何かを検索しようとしましたが、今のところ運がありません。

4

3 に答える 3

7

次のように、モーダルのスコープにブロードキャストされた「modal.closing」イベントを見ることができます。

.controller('modalCtrl', function($scope, $modalInstance) {

  $scope.$on('modal.closing', function(event, reason, closed) {
      var r = prompt("Are you sure you wanna close the modal? (Enter 'YES' to close)");

      if (r !== 'YES') {
        event.preventDefault();
      }
  });
})

最初のパラメーターはeventです。これをpreventDefault()で閉じないようにすることができます。

2 番目のパラメーターは理由です ( $close()メソッドに渡されるものは何でも)

3 番目のパラメーターは、モーダルが閉じられたか、閉じられたかを示すブール値です。

ここで働くプランカー

これがいつ追加されたのかはわかりませんが、現在は公式ドキュメントに記載されています。

于 2015-09-21T15:02:27.230 に答える
2

これにより、背景が $modal.close イベントをトリガーするのを停止します。

$modal.open({
   // ... other options
   backdrop  : 'static',
   keyboard  : false
});

キーボードのESCキーは引き続きモーダルを閉じることができるので、それを無効にしたい場合はkeyboard: false

于 2016-09-07T19:36:43.890 に答える