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
变量