我是角度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设置对象。 谢谢。
答案 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) => {