ionic中使用NavController
進行導航,經過pop
、push
來進行頁面切換。前端
正向傳值很簡單,push
方法中將數據做爲第二個參數傳入便可;在下一個頁面中使用NavParams
來接收數據cookie
import { NavController } from 'ionic-angular'; constructor(public navCtrl: NavController) {} let data: Object = { info: '這是要傳遞的數據'}; this.navCtrl.push(NavPage, data);
反向傳值,也就是在使用pop
方法時,將數據傳回上一個頁面閉包
注意:通常來講,須要方向傳值的時候,使用ModalController
便可。固然也有其餘的辦法,好比localstorage
、cookie
、@Output
或者單例服務。ionic
具體代碼以下函數
// first page this.navCtrl.push(NextPage, { callback: (data) => { // ...處理data console.log(data); } }) // next page:popPage爲監聽返回按鈕的處理事件 popPage() { let callbackFunc = this.navParams.get('callback'); let popData = {info: '這是要傳回的數據'}; callback(popData); this.navCtrl.pop(); }
這裏是利用閉包來實現數據的傳遞,callback做爲會回調函數傳入新頁面。this
我粗略看了一下ionic的源碼(ionic3),ModalController也是用這種方式來傳遞數據的。localstorage
因爲前端基礎不紮實,對閉包瞭解不深,因此不敢妄下判斷,有錯誤,請各位大神指正。code