我知道这被问了很多时间,但我似乎无法找到解决问题的正确答案。
它实际上很直接:
service.getDetails(request, function(place, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
在其照片上使用getDetails之前使用过,因此我们知道它实际上是获取非空数据。接着,
for (var i = 0; i < place.photos.length; i++) {
....
}
之后我用了很长的照片。
请注意: 它工作正常,除非这个地方实际上没有拉图片......现在它正在抛弃“未捕获的TypeError:无法读取未定义的属性'长度”。
在调用place.photos.length之前是否存在可以放置的条件,以便我可以消除此错误消息?
感谢阅读!请帮忙。
答案 0 :(得分:2)
只需先检查place.photos
是否存在:
if (place.photos)
for (var i = 0; i < place.photos.length; i++)
// ...
通过if
检查,place.photos
是null
还是undefined
(可能undefined
最可能,如您的错误所示),那么循环不会被尝试。