Ionic中使用NavController進行反向傳值

ionic中使用NavController進行導航,經過poppush來進行頁面切換。前端

正向傳值

正向傳值很簡單,push方法中將數據做爲第二個參數傳入便可;在下一個頁面中使用NavParams來接收數據cookie

import { NavController } from 'ionic-angular';
constructor(public navCtrl: NavController) {}

let data: Object = {  info: '這是要傳遞的數據'};
this.navCtrl.push(NavPage, data);

反向傳值

反向傳值,也就是在使用pop方法時,將數據傳回上一個頁面閉包

注意:通常來講,須要方向傳值的時候,使用ModalController便可。固然也有其餘的辦法,好比localstoragecookie@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

相關文章
相關標籤/搜索