加载时超出angularjs-google-maps / ng-map堆栈限制

时间:2015-06-10 08:34:42

标签: angularjs angularjs-google-maps

我想让angularjs-google-maps使用以下代码在angularjs项目中显示地图。 (仅显示相关的代码部分。)

在index.html中:

<script src="http://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.min.js"></script>

在app.js中:

var forecastApp = angular.module('forecastApp', ['ngRoute', 'ngResource', 'ngSanitize','angularjs-dropdown-multiselect','ngMap']);

...

.when('/map',
                {
                    controller:'mapController',
                    templateUrl:'app/map/_map.html'
                })

在_map.html中:

<div map-lazy-load="http://maps.google.com/maps/api/js">
  <map center="current-location" zoom="8">
    <info-window position="current-location" visible="true">
      <span>Loation found using HTML5.</span>
    </info-window>
  </map>
</div>

mapController.js中的mapController被实例化并为空。

在Firefox中我得到一些无限循环,数百个导航栏在彼此之上,直到它崩溃,在Chrome中我没有显示任何显示超时(只是等待rawgit.com)并设法得到一个&#34 ;堆栈大小超过&#34;错误一次,可能表示循环引用?谷歌地图的懒惰实例化不是一个问题,&#34;等待...&#34;显示访问下载js / css代码的最后一个域,因此服务器没有关闭(尝试包括本地存储的ng-map.min.js)。

谢谢。

1 个答案:

答案 0 :(得分:1)

抱歉为我的问题指责angularjs-google-maps模块。这是angularjs中的路由。 app.js中的以下代码部分导致了问题:

forecastApp.config(function($routeProvider) {
    $routeProvider
        .when('/',
            {
                controller:'',
                templateUrl:''
            })
        .when('/location',
            {
                controller:'locationController',
                templateUrl:'app/location/_location.html'
            })
        .otherwise({redirectTo:'/'});
});

没有控制器和模板的when('/')otherwise({redirectTo:'/'})角度进入一些奇怪的循环。删除when('/')部分或添加控制器和模板后,一切正常。