2017-09-14 49 views
0

我試圖通過NavParams將一個頁面中的特定數據傳遞給另一個頁面,但我總是在控制檯中獲得undefined結果。我不知道什麼似乎是問題。這裏是我的代碼:Ionic 2中的NavParams

order.ts(TS文件,我想要得到的數據)

postOrder(ordernum) { 

     let headers = new Headers(); 
     headers.append('Content-Type', 'application/json'); 

     let data=JSON.stringify({ 
           mode_code: this.data2code, 
           order_totalpayment: this.dataquantity, 
           order_status: this.status 
          }); 

     this.http.post('http://<--My JSON API-->/xxx/api.php/ordered?transform=1',data,headers) 
     .map(res => res.json()) 
     .subscribe(res => { 
     console.log("Success Order No.: "+res); 
     this.ordernum = res; 

      let data2=JSON.stringify({ 
            order_no: this.ordernum, 
            prod_id: this.dataid, 
            order_subtotal: this.dataquantity 
           }); 

      this.http.post('http://xxxx/xxx/api.php/order_list?transform=1',data2,headers) 
      .map(resp => resp.json()) 
      .subscribe(resp => { 
      console.log("Order List No.: "+resp); 

      this.nav.setRoot(ConfirmorderPage, { ordernum: ordernum }); 

      }, (err) => { 
      this.showPopup("Oops!", "Something went wrong."); 
      }); 

     }, (err) => { 
     this.showPopup("Oops!", "Something went wrong."); 
     }); 

    } 

在代碼中,我試圖讓是this.ordernum數據。所以,我用這個代碼:postOrder(ordernum)this.nav.setRoot(ConfirmorderPage, { ordernum: ordernum });

order.html(在我沒有數據傳遞到另一個頁面的HTML文件)

<div"> 
    <div padding> 

     <p>Your Order Number is {{ordernum}}</p> 

    </div> 
    </div> 

    <div style="margin: 10px;"> 
    <button ion-button block color="orange" (click)="postOrder(ordernum)" >Place Order</button> 
    </div> 
    </div> 

我想要的數據的ordernum,讓我把它放在點擊功能(click)="postOrder(ordernum)"

confirmorder.ts(在這裏我想ordernum從orderpage傳遞數據TS文件)

constructor(public navCtrl: NavController, public navParams: NavParams) { 

    this.order = this.navParams.get('ordernum'); 
    console.log(this.order); 

} 

我用this.navParams.get('ordernum')從訂單頁面獲取數據,並且我將ordernum數據傳遞給this.order變量,但是當我試圖在控制檯中顯示它時,我得到了未定義的結果。我不知道我的代碼有什麼問題。希望你們能幫助我。先謝謝你。

回答

0

this.nav.setRoot(ConfirmorderPage, { ordernum: ordernum }); 在你的對象中,key和value都是變量ordernum的值。你的鑰匙需要是一個字符串,所以用引號。

還使用this確保您指向正確的變量(您似乎有一個類變量以及名稱爲ordernum?的參數?)。

務必:

this.nav.setRoot(ConfirmorderPage, { 'ordernum': this.ordernum });