2017-04-05 68 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