如何检查angular2中的响应对象中是否存在键?

时间:2018-04-05 05:23:20

标签: angular angular2-routing

我通过angular2提交数据后从服务器获取数据。这是我的submitPost代码: -

submitPost()
{        
      this._adminLogin.postAdminLogin(this.adminLoginmodel).subscribe(
          data => {
                this.responseStatus = data;
                if(this.responseStatus.status == 1)
                {
                  this.router.navigate(['admin/dashboard'])
                }
                else
                {
                  alert('Login Error');
                }
              },
          err => {
                console.log(err)
              },
          () => {}
      ); 
      this.status = true;       
}

这是我得到的响应结构: -

For Error: {"status":0,"message":"An error occured while logging in","error":""}
For Success: {"status":1,"message":"Login Success","error":""}

然而,这个LoC造成了一些麻烦: -

if(this.responseStatus.status == 1)

从命令行按ng serve --host以运行项目时,编译失败。这是我得到的信息: -

enter image description here

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您可以设置data any对象,或为data设置合适的类型。设置any只会关闭编译器检查。

.subscribe((data: any) => 

.subscribe((data: MyResponse) => 

其中MyResponse类似于

interface MyResponse {
   status: number;
   message: string;
}