我正在使用Angular 7,并且正在从服务获取此数据:
{name: "peter", datetime: 1557996975991}
然后我有这种获取数据的方法:
myMethod() {
this.myService.getdata().subscribe((res) => {
console.log(res); // returns: {name: "peter", datetime: 1557996975991}
console.log(res[0].datatime); // Gives Error: Cannot read property 'datetime' of undefined
});
}
当我尝试获取数据时间值时,我得到:
给出错误:无法读取未定义的属性“ datetime”
我该如何解决?
答案 0 :(得分:5)
res变量是对象而不是数组。
您需要更改为console.log(res.datatime);
更改为
myMethod() {
this.myService.getdata().subscribe((res: any) => {
console.log(res); // returns: {name: "peter", datetime: 1557996975991}
console.log(res.datatime);
});
}
答案 1 :(得分:1)
您从对象那里获得价值
console.log(res.datetime)
答案 2 :(得分:0)
您正在混淆对象和数组。
当您执行console.log(res[0].datatime)
时,您可以在{name: "peter", datetime: 1557996975991}
清楚地看到它是一个对象时,将响应理解为一个数组。
正如Hein指出的那样,您应该使用datatime
来访问console.log(res.datatime)
属性
答案 3 :(得分:0)
console.log(res.datetime);
-注意e
中的datetime
。
答案 4 :(得分:0)
是的,就像@FailedUnitTest所说的那样,最好的方法是声明一个接口,这样您就可以访问此值。始终避免使用“ any”,因为当代码变得越来越困难时,您可能会遇到一些麻烦。