未捕获的TypeError:无法读取未定义的属性“open_now”

时间:2017-09-04 11:46:56

标签: javascript google-maps google-maps-api-3 google-places-api

使用google places api我正在尝试检查搜索结果当前是否已打开。如果是这样,我想在标记的infowindow处显示“仍然打开”的文本。这是代码示例:

 // Get the place details. Show the information in an info window,
// anchored on the marker for the result that the user selected.
function showInfoWindow() {
  var marker = this;
  places.getDetails({ placeId: marker.placeResult.place_id }, function(
    place,
    status
    ) {
    if (status !== google.maps.places.PlacesServiceStatus.OK) {
      return;
    }
    infoWindow.open(map, marker);
    buildIWContent(place);
  });
}
function buildIWContent(place) {
if (place.opening_hours.open_now) {
    var openNow = place.opening_hours.open_now;
    if (openNow === true) {
      document.getElementById("iw-now-row").style.display = "";
      document.getElementById("iw-now").innerHTML = "still open";
    }
  } else {
    document.getElementById("iw-now-row").style.display = "none";
  }
}

此代码导致我的控制台上出现“未捕获的TypeError:无法读取未定义的属性'open_now'”,尽管我仍然可以获得我想要的信息。有人知道这里有什么问题吗?

编辑:根据geocodezip的评论,我创建了一个简单的fiddle。通过单击标记,虽然信息正确显示,但控制台会返回错误消息。

0 个答案:

没有答案