2015-01-24 5 views
3

Я получаю 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. Окна отображаются, но при обновлении ведут себя беспорядочно.Угловые карты: Невозможно получить gMarker с маркеровScope

Каждый раз, когда пользователь нажимает на фильм, инфо-окна должны обновлять информацию об этом фильме на этом киномаркете. Иногда это срабатывает, иногда исчезают информационные окна, а иногда и маркеры исчезают. Единственная ошибка, которую я получаю, - это выше.

контроллер и вид код:

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> 

ответ

0

У меня был аналогичная проблема, когда в директиве координатах = «„я“», но маркера были установлены координаты: {широта: ххая долгота: ххххй}

Поскольку ваши UI-маркеры Карта устанавливается в = координатам " 'я'" так что попробуйте удалить COORDS в 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' 
    } 
Смежные вопросы