2017-03-22 34 views
1

我一直在想如何做到這一點,如果有未保存的路線頁面,我想要一個對話框彈出並詢問用戶是否希望保存數據或不是或完全取消。在路線警衛角2對話框candeactivate

我試過使用提示並確認,但這些只讓我一次有2個按鈕,而我需要3個按鈕同時顯示是,否,取消。

我的問題是,雖然我可以讓彈出的對話框,我不知道如何使Angular 2在繼續前等待用戶選擇,我已經用Javascript和Jquery嘗試過,但仍然無法瞭解如何使角度等待用戶輸入,然後對選擇進行操作。

歡迎所有提示! :)

這裏有一個小笨蛋,點擊吧,然後foo然後再點吧,讓彈出窗口顯示出來,不知道如何讓它在同一時間等待值,而現在它只是使用之前的值設置

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

您可以編寫自己的HTML和CSS有一個div將作爲一個彈出。有關於此的very good tutorial。您會隨時顯示/隱藏彈出窗口,並且您可以在其中添加自己的標籤,包括按鈕。然後,您可能需要一個function,它將根據用戶完成的操作接收輸入,並將正確參數的函數調用添加到按鈕的onclick中。

+0

是!這正是我正在做的,我做了一個小型彈出窗口,它工作正常,但問題是當我嘗試運行計時的事情。 例如,當我要求停用警衛檢查值時,它立即打開彈出窗口,但沒有任何功能讓它實際上等待用戶按下按鈕,它只是繼續評估所有得到的變量返回爲未定義,因爲用戶還沒有輸入輸入 –

+0

@ D.Newbie您可以使用自己編寫的幫助函數檢查值。如果你需要一個等待邏輯,你可能會有一個請求,並且你可能想要在回調中打開彈出窗口的代碼。 –

+0

是的,它必須在某處,我有打開彈出窗口所需的所有代碼,並在之後關閉它,但是缺少的是等待用戶選擇一個選項並將選項放入的等待功能一個字符串,可以用來決定在哪裏路由和調用保存功能或不,我會看看回調,並試圖找出一些東西:) –