0

我正在尝试使用 NavParams 将特定数据从一个页面传递/获取到另一个页面,但我总是undefined在控制台中得到结果。我不知道似乎是什么问题。这是我的代码:

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从订单页面传递数据的 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变量,但是当我尝试在控制台中显示它时,我得到了未定义的结果。我不知道我的代码有什么问题。希望你们能帮助我。先感谢您。

4

1 回答 1

0

this.nav.setRoot(ConfirmorderPage, { ordernum: ordernum }); 在您的对象中, key 和 value 都是 variable 的值ordernum。您的密钥必须是字符串,因此请使用引号。

还用于this确保您指向正确的变量(您似乎有一个类变量以及一个名称参数ordernum?)​​。

做:

this.nav.setRoot(ConfirmorderPage, { 'ordernum': this.ordernum });
于 2017-09-14T09:03:11.410 回答