谷歌地图错误 - 未捕获的ReferenceError:谷歌没有定义 - 自耕农

时间:2014-07-11 18:20:47

标签: angularjs google-maps yeoman ionic-framework

关于yeoman-ionic框架我试图将谷歌地图添加到我的应用程序。问题是每次我运行grunt服务时index.html脚本被删除。所以我运行了这个:bower install --save angular-google-maps并解决了问题,因为它除了index.html之外还在其他文件上编写了脚本。唯一的问题是,当我再次运行咕噜声时,我遇到了一个不同的错误,从那以后我就无法弄清楚我做错了什么......

错误:

  

未捕获的ReferenceError:谷歌未定义

我认为它与某些业力配置文件有关,虽然我不知道这是什么。试图解决这个问题几个小时,无法解决这个问题......

2 个答案:

答案 0 :(得分:11)

我也得到了这个错误。事实证明这与我加载脚本文件的顺序有关。尝试按以下顺序加载脚本文件:

<script src='//maps.googleapis.com/maps/api/js?sensor=false'></script>
<script src='/path/to/underscore[.min].js'></script>
<script src='/path/to/lodash.underscore[.min].js'></script>
<script src='/path/to/angular-google-maps[.min].js'></script>

最佳!

答案 1 :(得分:6)

您必须使用Google Maps SDK Async Loader。 它保证在所有Google Maps SDK完全就绪之前,angular-google-maps不会开始处理任何指令。

配置:

    .config(function(uiGmapGoogleMapApiProvider) {
    uiGmapGoogleMapApiProvider.configure({
        //    key: 'your api key',
        v: '3.20', //defaults to latest 3.X anyhow
        libraries: 'weather,geometry,visualization'
    });
});

Google Maps SDK何时准备就绪?:

    .controller("someController", function($scope, uiGmapGoogleMapApi) {
    uiGmapGoogleMapApi.then(function(maps) {
     // write your code here
     // (google is defined)
    });
});

您也可以阅读此http://angular-ui.github.io/angular-google-maps/#!/api/GoogleMapApi