Angular UI-Bootstrapでモーダルを「却下」することとモーダルを「閉じる」ことの違いは何ですか?


83

モーダルを「却下」することとモーダルを「閉じる」ことの違いは何ですか?

close(result) - a method that can be used to close a modal, passing a result
dismiss(reason) - a method that can be used to dismiss a modal, passing a reason

回答:


91

答えは、引用した2行の直後のドキュメントにあります。

openメソッドは、次のプロパティを持つオブジェクトであるモーダルインスタンスを返します。

  • close(result)-モーダルを閉じて結果を渡すために使用できるメソッド
  • dismiss(reason)-モーダルを却下し、理由を渡すために使用できるメソッド
  • 結果-モーダルが閉じられたときに解決され、モーダルが却下されたときに拒否されるプロミス

ここで重要なのは、約束がどうなるかということです。終了すると、promiseは解決されます。基本的に、「成功」コールバックが発生します。却下すると、promiseは拒否されるため、代わりに「failure」コールバックを実行します。


33
ここで重要なのは、約束がどうなるかということです。終了すると、promiseは解決されます。基本的に、「成功」コールバックが発生します。却下すると、promiseは拒否されるため、代わりに「failure」コールバックを実行します。
ブライアン

ここに追加の質問があります:UIの観点から、ダイアログを閉じるとはどういう意味ですか?私が理解しているように、ダイアログは「OK」または「キャンセル」(ウィンドウの「x」も)のいずれかでユーザーが閉じることができます。UIからどのように却下できますか?事前のおかげで
LM。

1
それはあなたがそれを意味したいことを意味します。ダイアログのテンプレートはあなた次第です。テンプレートに4つのボタンを配置し、2つはそれぞれ独自の理由でボタンを閉じ、2つはそれぞれ独自の結果で閉じることができます。デモをangular-ui.github.io/bootstrapで見てください。[OK]ボタンはok()を呼び出し、それ自体が選択されたアイテムでダイアログを閉じ、キャンセルボタンはcancel()を呼び出します。理由として「キャンセル」。
JB Nizet 2014

1
Thx、しかし私はそれについて別の質問があります:解雇の本当の意味は何ですか?約束のない近くのようですか?そしてその理由は、その主な目的は何ですか?'foo'と 'bar'で閉じるの違いは何ですか?このパラメータの使用方法がわかりません...誰かが説明できる場合
...– M'sieur Toph '2014

1
@JBNizet:その通りですが、私はそれを理解しました。時々お尻に噛み付く愚かな間違いで、ボタンのタイプをに設定するのを忘れていますbutton。:P
im1dermike 2014年

2

モーダルを閉じるユーザーからのものである場合(たとえば、モーダルの背後の状態に戻ってstate.go( '^')を呼び出す)、モーダルを閉じることが使用される場合は、モーダルの却下を使用するのが最適であることがわかりました。 $ state.goまたはui-srefを介して状態を変更する場合。

そうすればresult、何が起こるかに応じて、promiseを使用してさまざまなことを行うことができます。

result.then(function() { /* state change via ui-sref */ })

result.catch(function() { /* user closed modal */ })


1
モーダルが却下された場合、Promiseは解決されないため、これは重要です。つまり、エラーをキャッチしない限り、コンソールエラーが発生します。解雇はキャンセルによく使われるので、私は大ファンではありませんが、実際の問題ではありません。キャッチを実装すると、エラーがスローされるのを防ぐことができます。
Jared Sol

この回答は、ユーザーがサードパーティのui-routerlibを使用していることを前提としていますが、常にそうであるとは限りません(質問に含まれているわけでもありません)。
runderworld
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.