2017-09-14 78 views
5

我的離子3應用程序具有帶兩個選項卡的離子選項卡。當從標籤切換到標籤時,我需要顯示一條確認消息(使用AlertController),以防止用戶更改當前標籤,除非他確認了他的選擇。離子是可能的嗎? 我試着在選項卡更改時顯示確認消息。但是,我無法阻止新標籤出現。如何在離子選項卡離開3之前顯示確認消息

謝謝。

回答

3

你可以使用導航警衛來實現這樣的事情。您可以在NavController的離子文檔中找到它們。

的實現可能是這個樣子:

ionViewCanEnter(): Promise<any> { 
    return new Promise((resolve, reject) => { 
    let alert = this.alertCtrl.create({ 
     title: 'Alert', 
     message: 'Please confirm ...', 
     buttons: [ 
     { 
      text: 'Cancel', 
      role: 'cancel', 
      handler:() => { 
      reject(); 
      }, 
     }, 
     { 
      text: 'Confirm', 
      handler:() => { 
      resolve(); 
      }, 
     }, 
     ], 
    }); 
    alert.present(); 
    }); 
} 

使用ionViewCanEnter()ionViewCanLeave()當前確實not work(使用標籤時,至少)。

+0

謝謝你的回答。只有當我第一次更換標籤頁時,我才能用解決方案顯示確認消息。我遇到的問題是ionViewCanEnter鉤子只能觸發一次,因爲tabs視圖實際上只加載一次([更多詳情](https://github.com/ionic-team/ionic/issues/9951))這個問題 )。你有沒有遇到過這個問題? – MosbahiHaithem

+0

因此,用戶必須確認_every_他進入選項卡的時間?聽起來很糟糕的可用性。但如果這是一個離子蟲,目前你將不得不做一些凌亂的黑客來實現這一點。就像截獲選項卡上的點擊一樣,如果成功,請防止默認,手動顯示alert,.select()選項卡。 – David

+0

或者您在再次離開後手動銷燬標籤頁,以便下次再次初始化。 – David

相關問題