用Angular JS加载谷歌地图的问题

Jaskaye17

我正在使用以下JavaScript将google map加载到我的angular.js Web应用程序中。当我在页面上并刷新时,地图工作正常;但是,当我从应用程序中的其他位置链接到页面时,地图不会加载。我相信这与DOM侦听器有关,这不是在注册“加载”事件,但是不确定。在解决此问题方面,我将不胜感激。

authApp.controller('BarsController', function($scope, $rootScope, BarService) {
  $scope.currentUser = Parse.User.current();
  $scope.title = $rootScope.title;

  function initialize(){
      var mapOptions = {
          zoom: 11,
          mapTypeId: google.maps.MapTypeId.ROADMAP
      };

      var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

      $scope.map = map;
      if(navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position) {
              var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude)

              $scope.map.setCenter(pos);

              //Set myLocation Pin
              var marker = new google.maps.Marker({
                  position: pos,
                  map: $scope.map,
                  title: 'My Location',
                  icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
              });

          }), function(error){
            console.log('Unable to get location: ' + error.message);
          };
      }
   }; 
   google.maps.event.addDomListener(window, 'load', initialize);
 });  

解决方案由DMullings提供:

 authApp.controller('BarsController', function($scope, $rootScope, BarService) {
  $scope.currentUser = Parse.User.current();
  $scope.title = $rootScope.title;

  $scope.initialize = function(){
      var mapOptions = {
          zoom: 11,
          mapTypeId: google.maps.MapTypeId.ROADMAP
      };

      var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

      $scope.map = map;
      if(navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position) {
              var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude)

              $scope.map.setCenter(pos);

              //Set myLocation Pin
              var marker = new google.maps.Marker({
                  position: pos,
                  map: $scope.map,
                  title: 'My Location',
                  icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
              });

          }), function(error){
            console.log('Unable to get location: ' + error.message);
          };
      }
   }; 
 }); 

HTML:

<div data-ng-controller="BarsController" data-ng-init="initialize()">   
  //HTML Content Here
</div>  
嘟嘟

除了尝试在load事件上运行初始化函数外,您可以尝试使用ng-init

initialize函数添加到范围:

$scope.initialize = function(){
    //code goes here
}; 

然后在通过角度初始化控制器时调用初始化函数

<div data-ng-controller="BarsController" data-ng-init="initialize()"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AGM Angular 谷歌地图图像未加载

来自分类Dev

用angular js路由

来自分类Dev

谷歌地图无法正确加载 vue js

来自分类Dev

用JavaScript调用Angular JS

来自分类Dev

用angular js克隆表单

来自分类Dev

谷歌地图未加载

来自分类Dev

谷歌地图未加载

来自分类Dev

谷歌地图加载失败

来自分类Dev

谷歌地图的渲染问题

来自分类Dev

canOpenURL 谷歌地图问题

来自分类Dev

Angular JS用嵌套字典更新html

来自分类Dev

角,谷歌地图。地图未加载模板

来自分类Dev

谷歌地图地理编码问题

来自分类Dev

谷歌地图数组的Rails问题

来自分类Dev

在Android Webview中加载Angular JS网站的问题

来自分类Dev

用谷歌地图隐藏垂直滚动条

来自分类Dev

Angular:如何延迟加载谷歌分析脚本?

来自分类Dev

加载Angular $ window的问题

来自分类Dev

用熊猫加载csv的问题

来自分类Dev

用Angular Dart和Polymer Dart设计材料。编译问题

来自分类Dev

如何在angular2中显示地址的谷歌地图

来自分类Dev

错误TypeError:“ this.canvas未定义” 用angular和chart.js创建图表的问题

来自分类Dev

谷歌地图的轨道位置浮动重新加载

来自分类Dev

无法加载FragmentActivity,谷歌地图v 2

来自分类Dev

加载谷歌地图时出现ReferenceError

来自分类Dev

jQuery load()-无法加载谷歌地图

来自分类Dev

为什么我无法加载谷歌地图?

来自分类Dev

谷歌地图在加载时给出空指针

来自分类Dev

谷歌地图信息窗口未加载