角度贴图:无法从 markersScope 获取 gMarker

Angular maps: Unable to get gMarker from markersScope

本文关键字:markersScope 获取 gMarker      更新时间:2023-09-26

我在尝试添加infoWindows时遇到Unable to get gMarker from markersScope!(在角度地图中:https://github.com/angular-ui/angular-google-maps/blob/master/src/coffee/directives/api/models/parent/windows-parent-model.coffee#L146)。窗口确实显示,但在更新时行为不规则。

每次用户单击电影时,infoWindows 都应在该影院标记处更新有关该电影的信息。它有时有效,有时信息窗口消失,有时标记也消失。我得到的唯一错误是上面的错误。

控制器和视图代码:

var createCinemaMarkers = function(cinemas) {
  $scope.cinemaMarkers = [];
  $scope.cinemaWindows = [];
  for (var i = 0; i < cinemas.length; i++) {
    getMoviesForCinema(cinemas[i].venue_id);
    var map_coords = {
      id: cinemas[i].venue_id,
      title: cinemas[i].title,
      options: {
        title: cinemas[i].title,
        random: 'blah blah blah'
      },
      clickable: true,
      latitude: cinemas[i].coords.lat,
      longitude: cinemas[i].coords.lng,
      icon: 'images/cinema_icons/cinema.png'
    }
    if (!cinemas[i].movieTitle) {
      cinemas[i].movieTitle = '';
    }
    var parameters = {
        movieTitle: cinemas[i].movieTitle,
        movieTimes: cinemas[i].movieTimes,
        stuff: 'from props'
    }
    var infoWindow = {
      id: cinemas[i].venue_id,
      coords: {
        latitude: cinemas[i].coords.lat,
        longitude: cinemas[i].coords.lng
      },
      options: {
        title: "I AM TITLE"
      },
      show: true,
      templateUrl: 'views/info-window.html',
      templateParameter: parameters,
      isIconVisibleOnClick: true,
      closeClick: 'none'
    }
  $scope.cinemaWindows.push(infoWindow);      
  $scope.cinemaMarkers.push(map_coords);
  };
};
    <ui-gmap-google-map center="map.center" zoom="map.zoom" events="mapEvents">
    <ui-gmap-markers models="cinemaMarkers" events="events" options="'options'" coords="'self'" icon="'icon'" fit="'true'"  popover-placement="top" popover="On the Top!">
        <ui-gmap-windows models="cinemaWindows" templateUrl="'templateUrl'" templateParameter="'templateParameter'" options="'options'">
        </ui-gmap-windows>
    </ui-gmap-markers>
</ui-gmap-google-map>

我有一个类似的问题,在指令中coords="'self'",但标记设置为坐标:{纬度:xxxx,经度:xxxxx}

因为您的 ui-gmap 标记设置为 coords="'self'",所以请尝试在 infoWindow 中删除坐标

var infoWindow = {
      id: cinemas[i].venue_id,
      latitude: cinemas[i].coords.lat,
      longitude: cinemas[i].coords.lng,
      options: {
        title: "I AM TITLE"
      },
      show: true,
      templateUrl: 'views/info-window.html',
      templateParameter: parameters,
      isIconVisibleOnClick: true,
      closeClick: 'none'
    }