Angular Material UI フレームワークを使用した AngularJS アプリがあります。
アプリにはダイアログを表示するさまざまなメカニズム (エラーや読み込みスピナーなど) があり、特定のシナリオで特に選択されたものだけを閉じることが望ましいでしょう。フェッチの結果である可能性のあるエラー ダイアログ。
私がドキュメントとコードで見つけることができるものは一致しません (ただし、コードは議論に勝つはずです):
- ドキュメントには、オプションの応答で、最新のもののみを閉じることができると書かれています
- コードは、オプションの理由で、最新、最新の数、またはすべてのオープンを閉じることができることを示しています
- ドキュメントの例では、特定のダイアログを閉じることができ、その方法または理由を示すフラグが表示されます
私は可能な限りMCVとして私の意図のデモを作成しました- これらはハイライトです:
var dialog = {},
promise = {};
function showDialogs(sourceEvent) {
showDialog(sourceEvent, "one");
showDialog(sourceEvent, "two");
}
function showDialog(sourceEvent, id) {
dialog[id] = $mdDialog.alert({...});
promise[id] = $mdDialog.show(dialog[id]);
promise[id].finally(function() {
dialog[id] = undefined;
});
}
function closeDialogs() {
$mdDialog.hide("Closed all for a reason", {closeAll: true});
}
function closeDialogLatest() {
$mdDialog.hide("Closed from the outside");
}
function closeDialogReason() {
$mdDialog.hide("Closed with a reason");
}
function closeDialogSpecific(id) {
$mdDialog.hide(dialog[id], "finished");
}
編集:
コードが常に何が起こるかについての議論に勝つことは知っていますが、それが私が見ている正しいコードであるかどうかは完全にはわかりませんでした.
より良いテストを行い、ポイントと問題を説明するために、例を更新しました。これは、コードが言ったように動作することを示しています。
私が本当に探しているのは、私がまだ思いもよらなかった方法で目標を達成できるかどうかです。