我正在尝试使用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)"
confirnorkerordord.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
变量,但是当我尝试在控制台中显示它时,我会获得未定义的结果。我不知道我的代码怎么了。希望你们能帮助我。预先感谢您。
this.nav.setRoot(ConfirmorderPage, { ordernum: ordernum });
在您的对象中,密钥和值都是可变ordernum
的值。您的密钥需要是字符串,因此请使用引号。
还使用this
来确保您指出正确的变量(您似乎具有类变量以及名称ordernum
的参数?)。
做:
this.nav.setRoot(ConfirmorderPage, { 'ordernum': this.ordernum });