Проблема: элементы Google Maps, которые находятся внутри div, которые изначально отображаются как ng-hidden, отображаются как серые прямоугольники, когда они отображаются ng.
Я собрал этот плункер, чтобы продемонстрировать: https://plnkr.co/edit/emzlIT?p=preview
Другие успешно использовали google.maps.event.trigger(map,'resize')
, но для меня это бесполезно, возможно, потому что у меня скрыто несколько карт. На этом плункере 'resize'
, кажется, имеет значение, но не всегда. Если вы играете с Plunker и кажется, что все работает, попробуйте прокрутить карту, показанную ng, и вы получите серый цвет.
Показанный пример, конечно же, является очень упрощенной версией фактического веб-приложения, над которым я работаю. Достаточно сказать, что использование ng-if
вместо ng-show
(также работало для других) не вариант, и мои карты не всегда отображаются (хотя, если решения не найдены, мне, возможно, придется думать вне div.)
Примечание. Если вы видите карту серого цвета, увеличение или уменьшение масштаба в браузере, по-видимому, запускает рендеринг, после чего карты работают отлично, даже если они скрыты и снова показаны, я не знаю, что о масштабировании браузера вызывает желаемое поведение, но, возможно, это подсказка для вас.