2017-04-05 56 views
0

我有一個結果頁面。導航到此頁面時,直接創建搜索模式。Ionic 2 - 解僱模態和流行

在搜索頁面中,用戶可以引入查詢並提交他的搜索或取消。

如果有查詢,結果頁面顯示結果。
在另一方面,如果用戶取消搜索,我要彈出的結果頁面:

openSearchModal() { 
    let searchModal = this.modalCtrl.create(SearchPage, { 
     : 
     : 
    }); 
    SearchModal.onDidDismiss(data => { 
    this.handleModalData(data); 
    }); 
    searchModal.present(); 
} 


handleModalData(data) { 
    let q = data['q']; 

    if (!q) { 
    this.navCtrl.pop();                                                                                                                            
    } else { 
    // handle search query 
      : 
      : 
} 

}

我的問題是,取消搜索時,用戶得到看到一秒鐘應用程序發回他之前的結果頁面。

我試圖從模態中使用popTo,但無法實現我想要的功能。

回答

0

您應該處理pop的模式onDidDismiss()

presentModal() { 
    this.searchModal = this.modalCtrl.create(SearchPage, { //stuff }); 
    this.searchModal.onDidDismiss(data => { 
     this.navCtrl.pop(); 
    }); 
    this.searchModal.present(); 
} 

然後

handleModalData(data) { 
    let q = data['q']; 

    if (!q) { 
    this.searchModal.dismiss();                                                                                                                          
    } else { 
    // handle search query 
} 
+0

的事情是在登錄時 - 我解僱模態反正。只有當模態沒有返回任何數據時,我纔會彈出。所以這兩個函數都是啓動模式的頁面的一部分.... – guyaloni

+0

我編輯了我的代碼,所以也許現在更清楚了。 – guyaloni