我是离子的新手,
我在离子中使用了jquery来调用rest api。
当我使用带有jQuery的navCtrl时,Chrome控制台会出现错误,
ERROR TypeError: Cannot read property 'push' of undefined
使用不带jQuery的navCtrl时,navCtrl工作正常。
我想在我的项目中使用jQuery,请帮忙,以下是我正在使用的代码
使用jQuery
jQuery.post( "http://localhost/ccc/public/api/loginapi", { email: this.email, password: this.password })
.done(function( data ) {
localStorage.setItem('id', data.id);
localStorage.setItem('name', data.name);
if(data.message == "success") {
this.navCtrl.push(HomePage);
} else {
this.navCtrl.push(AboutusPage);
}
});
没有jQuery
this.restProvider.loginUser(JSON.stringify({ email: "aaa@bbb.com", password: "secret" }))
.then(data => {
this.user = data;
this.navCtrl.push(HomePage);
});
答案 0 :(得分:1)
您必须使用箭头操作符
jQuery.post( "http://localhost/ccc/public/api/loginapi", { email: this.email, password: this.password })
.done(( data ) => { // notice the use of arrow operator here
localStorage.setItem('id', data.id);
localStorage.setItem('name', data.name);
if(data.message == "success") {
this.navCtrl.push(HomePage);
} else {
this.navCtrl.push(AboutusPage);
}
});
在此处阅读有关箭头功能的更多信息:How is this
different for arrow function