代码之家  ›  专栏  ›  技术社区  ›  Mr. Developer

在订阅角度7[关闭]上打印来自对象的单个值

  •  0
  • Mr. Developer  · 技术社区  · 6 年前

    我是新来的角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,_ 可使用的:真的 乌苏里:1 usrlastlogin:空 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 回复  |  直到 6 年前
        1
  •  2
  •   devDan    6 年前

    您可以将它全部作为订阅使用,但正如前面提到的,注释中要注意大写字母,因为这将尝试访问不存在的值。下面的代码应该有效。

    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) => {