angic-router ionic v4, как скрыть восстановление гугл карт между просмотром навигации - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь повторно использовать тот же экземпляр google.maps.Map при переходе к / из представления с MapComponent.Когда я покидаю / уничтожаю MapCompnent, я сохраняю элемент DOM карты Google в DIV.style={display:none}

  ngOnDestroy() {
    google.maps.event.clearInstanceListeners(this.map);
    const parent = this.element.nativeElement;
    let stash = document.getElementById('stash-google-maps');
    if (!stash) {
      stash = this.renderer.createElement('DIV');
      stash.id = 'stash-google-maps';
      stash.style.display = "none";
      // stash.style.opacity = "0";
      this.renderer.appendChild(this._document.body, stash);
    }
    while (parent.childNodes.length > 0) {
      stash.appendChild(parent.childNodes[0]);
    } 
  }

, когда возвращаюсь обратно к представлению, я перемещаю элемент DOM карты Google обратно в HTML-код MapComponent.Кажется, все работает нормально, за исключением размера карты неправильно.Карта рисует плитки вне нового, содержащего DIV.

Я пытался вызвать google.maps.event.trigger(this.map, 'resize');, но это кажется устаревшим в текущем API v3.34.

что мне делать?

1 Ответ

0 голосов
/ 07 октября 2018

Оказывается, new google.maps.Map( el, options) добавляет

  position: relative;
  overflow: hidden;

к родительскому элементу, el

...