无法从承诺中获取值 - IONIC2

时间:2017-11-03 08:11:35

标签: angular ionic2

我的php文件将此作为响应返回

"结果:1"

我想在我的.ts文件中将其匹配,如下所示,这不起作用

this._login.login(this.usr,this.pwd)
        .subscribe(data => {
          console.log(data[0].Result);
             if(data[0].Result == 1){
                this.navCtrl.push(DashboardPage);
             }
        }

在我的console.log中说未定义。 请帮我纠正这两行代码 console.log(data[0].Result); if(data[0].Result == 1)

  

提前致谢

3 个答案:

答案 0 :(得分:1)

看起来你的php代码返回一个字符串,而不是json(技术上它的字符串转换为json),但在离子中你把它视为json对象。响应应为:[{"Result": 1}]而不是Result:1

所以在你的PHP代码中你需要:

echo json_encode(array(array("Result" => $cnt)));

答案 1 :(得分:0)

我认为你需要这样,

this._login.login(this.usr,this.pwd)
        .subscribe(data => {
          console.log(data.Result);
             if(data.Result == 1){
                this.navCtrl.push(DashboardPage);
             }
        }

答案 2 :(得分:0)

从截图中,返回类型不是JSON它的字符串。将字符串转换为JSON。请尝试以下代码

 this._login.login(this.usr,this.pwd)
            .subscribe(data => {
let updatedData = JSON.parse("{"+data+"}")
              console.log(updatedData.Result);
                 if(updatedData.Result == 1){
                    this.navCtrl.push(DashboardPage);
                 }
            }