在订阅Angular 7上从对象打印单个值

时间:2019-01-30 17:29:19

标签: angular api angular7 subscribe

我是角度7的新手 我需要在订阅api上读取的属性内打印值。

所以我的Init:

  ngOnInit() {
    this.loadingVisible = false;
    this.getLogin().subscribe((result: User) => {
        console.log(result);
      }
    );
  }

我的Google Chrome控制台响应API:

  

{usrId:1,usrUsername:“ test”,usrPassword:“ test”,usrEnable:true,usrLastLogin:null,...}   usrEnable:是   usrId:1   usrLastLogin:空   usr级别:1   usrPassword:“测试”   usrUsername:“测试”   原始:对象

所以我需要这样打印:

this.getLogin().subscribe((result: User) => {
     console.log(result); //works, i see the data
     this.myUserReturn = result;
     console.log(result.UsrUsername); // undefined
     console.log(this.myUserReturn.UsrUsername); // undefined
     // why is all undefined !?
   }
);

我需要了解如何通过API设置对象。 谢谢。

1 个答案:

答案 0 :(得分:2)

您应该将所有内容都设置为订阅服务器,但是如前所述,注释要注意大写,因为这将尝试访问不存在的值。下面的代码应该可以工作。

this.getLogin().subscribe((result: User) => {
     console.log(result); //works, i see the data
     this.myUserReturn = result;
     console.log(result.usrUsername); 
     console.log(this.myUserReturn.usrUsername); 
   }
);

您在这里使用一种文字

((result: User) => {

您的IDE应该抱怨这些值在类型中不存在,请确保您没有在这里输入键入错误。

您可以使用类似的东西。

interface IUser {
usrUsername: string;
//rest of your values here typed case sensitive
}

然后将类型更改为下面的这种方式,这样在出现区分大小写的问题或错字时应始终通知您。出现警告时,IUser上不存在“ UsrUsername”类型。

((result: IUser) => {