2017-07-21 40 views
1

所以我試圖傳遞一個字符串作爲參數傳遞給Modal(主/明細)並且Modal打開,但字符串返回undefined。Ionic 3 modal navparams返回undefined

這裏是父TS:

editReminder(event, data){ 
    console.log(data); 
    let myModal = this.modalCtrl.create(ReminderDetailsPage, data); 
    myModal.present(); 
} 

的HTML顯示的是使用ngFor(提醒的提醒)提醒的列表。這種方法得到這樣的字符串在html上:

<button ion-fab mini class="mini-button" (click)="editReminder($event, reminder)"> 
      <ion-icon name="create"></ion-icon> 
</button> 

如果我console.log(數據),它會返回像我一樣的提醒。但是當我嘗試在ReminderDetails模式下獲得它時:

export class ReminderDetailsPage { 

    EditedReminder: string = this.navParams.get('data'); 

它只是返回undefined。我已經在這兩個頁面上導入了navParams,並在構造函數中聲明瞭它們。

回答

1

this.modalCtrl.create(ReminderDetailsPage, { data: data });

傳遞對象到create() -method。 並在constructor中或在ngOnInit等生命週期函數中調用navParams.get()

0

在莫代爾頁

ionViewWillLoad() { 
const data = this.navParams.get('data'); 
console.log(data); 
} 

如果你想將數據傳回了模態的..

import {NavParams, ViewController} from 'ionic-angular'; 
... 
    data: String 
    constructor(private navParams: NavParams, private view: ViewController) {} 
    ionViewWillLoad() { 
    this.data = this.navParams.get('data'); 
    console.log(this.data); 
    } 

    closeModal() { 
    this.view.dismiss(data); 
    } 

然後呼籲頁:

const myModal: Modal = this.model.create('ModalPage', {data: myData}) 
myModal.present(); 
myModal.onWillDimiss(data) => { 
    console.log(`About to dismiss with: ${data}`); 
}) 
myModal.onDidDimiss(data) => { 
    console.log(`Dismissed with: ${data}`); 
}) 
0

在這種情況下,我建議您使用存儲替代使用NavParams