我正在开发一个Angular App,它从API加载数据。
除了在Chrome console.log
中定期收到此错误外,一切都按预期工作TypeError:无法读取属性'经度'未定义的
这会导致一些后续功能失效。线角度抱怨,是以下
function updateMapWaypoint(lastposition) {
console.log("updateMapWaypoint(%s) called", lastposition);
console.log($scope.units[$scope.selectedUnitIndex]);
var longitude = (lastposition) ? $scope.units[$scope.selectedUnitIndex].lastposition.gps.longitude : $scope.unsortedPositions[$scope.selectedPositionIndex].gps.longitude;
哪两个首先是调试而最后一个是导致故障的行。据我所知,从控制台中的printet对象。 Javascript应该可以毫无困难地从对象中找到经度,但是它会引发错误,我找不到任何解决方法。
感谢所有帮助,如果需要更多详细信息,我会尽可能为我提供。
答案 0 :(得分:1)
这看起来可能是竞争条件。
console.log()
会显示对象,因为它现在是 ,而不是当你调用console.log()
时是什么。要在certian时间点查看对象的属性,您必须复制其内容并将其发送到console.log()
,例如通过对其进行字符串化:
console.log(JSON.stringify(myObject))
或者如果您使用的是Angular:
console.log(angular.extend({}, myObject));
这令人困惑(它几次与我搞砸了)。请记住,您要发送console.log()
对象引用,而不是该对象的副本。