在Angular 2上刷新GoogleMap,它位于隐藏组件上

时间:2016-03-18 16:32:32

标签: google-maps angular

这是我的问题:隐藏div中的地图未显示

可能的解决方案:

<div [hidden]="!showMap">
    <sebm-google-map #myMap></sebm-google-map>
</div>
<button (click)="showMap = true; myMap.triggerResize()">resize</button>

这可以使用一个简单的1变量,在我的情况下我有动态创建这些div,所以我不能轻易指向#myMap

1 个答案:

答案 0 :(得分:3)

这是为了在所有triggerResize()元素上调用<sebm-google-map>

<div *ngFor="let item of items"> <!-- just some ngFor for demo -->
  <button #myMap (click)="showMap = true; doTriggerResize()">resize</button>
</div>
@ViewChildren('myMap') viewChildren:QueryList;

doTriggerResize() {
  this.viewChildren.toArray().forEach((e) {
    e.triggerResize();
  });
}