Angular 从if条件角度(3)设置变量值
我试图从Angular 从if条件角度(3)设置变量值,angular,ionic3,Angular,Ionic3,我试图从subscribe()中的条件设置一个值。下面是我目前正在做的事情 var statuscode; this.http.post('http://192.168.3.223:84/fppb/andro_login',this.loginData) .subscribe( function(response) { console.log(response);
subscribe()
中的条件设置一个值。下面是我目前正在做的事情
var statuscode;
this.http.post('http://192.168.3.223:84/fppb/andro_login',this.loginData)
.subscribe(
function(response) {
console.log(response);
if(response)
statuscode = '1';
else
statuscode = '2';
},
function(error) {
statuscode = '3';
}
);
loader.dismiss();
console.log(statuscode);
此代码始终在我的console.log(statuscode)中为我提供未定义的代码>
除此之外,此页面:http://192.168.3.223:84/fppb/andro_login
正在返回true或false。以下是确定响应的代码:
if($query->num_rows() > 0)
{
echo json_encode(true);
}else{
echo json_encode(false);
}
我怎样才能解决这个问题
对不起,我的英语很差,提前谢谢你
编辑
因此,我想为指定的statuscode
显示警报。执行此操作时:
signIn(){
let loader = this.ld.create({ content: "Please wait..." });
loader.present();
var headers = {
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods' : 'POST'
};
let bodyString = JSON.stringify(this.loginData); // Stringify payload
var statuscode;
this.http.post('http://192.168.3.223:84/fppb/andro_login',this.loginData)
.subscribe(
function(response) {
console.log(response);
if(response)
{
let alert = this.alertCtrl.create({
title: 'Sukses',
subTitle: 'Login Berhasil',
buttons: ['OK']
});
loader.dismiss();
alert.present();
}
else {
let alert = this.alertCtrl.create({
title: 'Gagal',
subTitle: 'Username atau Password salah',
buttons: ['OK']
});
loader.dismiss();
alert.present();
}
},
function(error) {
let alert = this.alertCtrl.create({
title: 'Gagal',
subTitle: 'Username atau Password salah',
buttons: ['OK']
});
loader.dismiss();
alert.present();
}
);
}
我得到这个错误:
TypeError:无法读取未定义的属性“create”
有什么想法吗?因为javascript是异步的,所以在console log语句执行可观察订阅事件之前。这就是它打印未定义内容的原因
您需要将语句移动到subscribe
.subscribe(
function(response) {
console.log(response);
if(response)
statuscode = '1';
else
statuscode = '2';
console.log(statuscode);
},
function(error) {
statuscode = '3';
}
);
loader.dismiss();
我这样做是因为我需要做一些事情,我想alert.present()代码>用于指定的状态代码。为什么不能在“订阅”中执行此操作?初始化alertCtrl
变量