html - 具有相同 Controller 和相同模板的多个选项卡上的 Angular Google map

标签 html angularjs google-maps tabs ionic-framework

我正在使用 IONIC 和 AngularJS,并包含 Google map 。我有这个 map 的模板和 Controller ,我将在两个选项卡上使用该 map 。

.state('tab.map1', {
  url: '/tab1/map',
  views: {
    'map1-tab': {
      templateUrl: 'templates/map.html',
      controller: 'MapController'
    }
  }
})
.state('tab.map2', {
  url: '/tab2/map',
  views: {
    'map2-tab': {
      templateUrl: 'templates/map.html',
      controller: 'MapController'
    }
  }
})

HTML:

<div id="map"></div>

Controller :

$scope.map = new google.maps.Map(document.getElementById('map'), mapOptions);

第一个选项卡上的 URL: /tab1/map

第二个选项卡上的 URL: /tab2/map

现在,当我调用其中一个 URL 时,一切都很好,我可以看到我的 map 。但是当我更改选项卡时,我就看不到 map 了。 div 似乎是空的。页面重新加载后, map 可见。

有谁知道如何处理多个选项卡上的“同一”页面?提前致谢。

最佳答案

如果其他人也有同样的问题,这是我的解决方案:

问题是,我对两个选项卡使用了相同的 HTML,div 不应该具有相同的 id。

.state('tab.map1', {
  url: '/tab1/map',
  views: {
    'map1-tab': {
      templateUrl: 'templates/map1.html',
      controller: 'MapController'
    }
  }
})
.state('tab.map2', {
  url: '/tab2/map',
  views: {
    'map2-tab': {
      templateUrl: 'templates/map2.html',
      controller: 'MapController'
    }
  }
})

第一个选项卡的 HTML:

<div id="map1"></div> 

第二个选项卡的 HTML:

<div id="map2"></div>

在我的 Controller 逻辑中

if ($location.path() == 'tab1\map'){
  $scope.map = new google.maps.Map(document.getElementById('map1'), mapOptions);
}else{
  $scope.map = new google.maps.Map(document.getElementById('map2'), mapOptions);
}

这对我有用,在选项卡之间切换时 map 始终可见。

关于html - 具有相同 Controller 和相同模板的多个选项卡上的 Angular Google map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290160/

相关文章:

javascript - 如何从指令更新 $scope 值

javascript - AJAX 请求正文为空(无 jQuery)

javascript - php 的 ajax 加载无法正常工作

html - 头部如何向左显示

angularjs - 如何使用 Angular 1.5 *components* 和 UI Bootstrap Modal 解析

javascript - KML 标记失去了颜色(但仅在 js api 中)

java - 在 Java Swing 的 JEditorPane 中添加 HTML

javascript - Angular 监控 DOM 更改超出 Angular 范围

java - 致命异常 : java. lang.OutOfMemoryError : pthread_create at com. google.maps.api

javascript - 如何使用 react-native-maps 根据缩放值调整在 map 上绘制的形状的大小