2017-03-22 7 views
1

私はこれを行う方法を理解しようとしています。ルートに保存されていないページがある場合は、ダイアログをポップアップして、データを保存するかどうかを尋ねます完全ではない、または完全に取り消す。ルートガード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

答えて

0

を設定しました。これについてはvery good tutorialがあります。あなたはいつでもポップアップを表示/非表示にすることができますし、ボタンを含めてそこに独自のタグを追加することもできます。次に、functionがユーザによって行われたアクションに従って入力を受け取り、正しいパラメータを持つ関数呼び出しをボタンのonclickに追加することができます。

+0

それはまさに私がやっていることです、私はミニポップアップを作った、それはうまく動作しますが、問題は時限のあるものを実行しようとするときです。 たとえば、無効化ガードに値のチェックを依頼すると、即座にポップアップが開きますが、ユーザーがボタンを押すのを実際に待つ機能はなく、取得するすべての変数を評価するだけですユーザーがまだ入力していないので未定義として返されます。 –

+0

@ D.Newbie自分で作成したヘルパー関数を使用して値を確認できます。待機ロジックが必要な場合は、リクエストがあり、ポップアップを開くコードをそのコールバックの中に入れることができます。 –

+0

ええ、それはラインのどこかにある必要があります、私はポップアップを開くために必要なすべてのコードを持っているし、後でそれを閉じますが、何が欠けているのは、ユーザーがオプションとオプションを入れるのを待つルーティングする場所と保存関数を呼び出すかどうかを決定するために使用できる文字列、コールバックを調べて何かを見つけよう:) –

関連する問題