私はこれを行う方法を理解しようとしています。ルートに保存されていないページがある場合は、ダイアログをポップアップして、データを保存するかどうかを尋ねます完全ではない、または完全に取り消す。ルートガードcandeactivateの角度2のダイアログ
プロンプトを使用して確認しようとしましたが、同時に2つのボタンしか表示できませんが、3つのボタンではい、いいえ、キャンセルを同時に表示できます。
私は、ダイアログをポップアップ表示させることができますが、進行する前に角2をユーザーの選択待ちにする方法がわからないので、私はJavascriptとJqueryの両方で試しましたが、どのようにユーザーの入力を待つかを選択してから選択を実行する方法を説明します。
すべてのヒントを歓迎します。 :)
ここに小さな棒がありますが、次にbarをクリックしてからfooを押して再びポップアップを表示して、それと同じ時間に値を待つようにしますあなたがポップアップとして機能するdiv
を持っているために、独自のHTMLとCSSを書くことができ
if (target.hasBeenChanged == true) {
target.popuptest();
// using the last one set in component for now
let selection = target.popupchoice;
console.log('selected was: ' + selection);
if (selection == 'yes') {
target.PushToSave();
return true;
} else if (selection == 'no') {
return true;
} else {
return false;
}
} else {
return true;
}
https://plnkr.co/edit/so7KeiaMiqbSy7Nr5nSB?p=info
それはまさに私がやっていることです、私はミニポップアップを作った、それはうまく動作しますが、問題は時限のあるものを実行しようとするときです。 たとえば、無効化ガードに値のチェックを依頼すると、即座にポップアップが開きますが、ユーザーがボタンを押すのを実際に待つ機能はなく、取得するすべての変数を評価するだけですユーザーがまだ入力していないので未定義として返されます。 –
@ D.Newbie自分で作成したヘルパー関数を使用して値を確認できます。待機ロジックが必要な場合は、リクエストがあり、ポップアップを開くコードをそのコールバックの中に入れることができます。 –
ええ、それはラインのどこかにある必要があります、私はポップアップを開くために必要なすべてのコードを持っているし、後でそれを閉じますが、何が欠けているのは、ユーザーがオプションとオプションを入れるのを待つルーティングする場所と保存関数を呼び出すかどうかを決定するために使用できる文字列、コールバックを調べて何かを見つけよう:) –