jak*_*ake 4 javascript google-maps angularjs
所以,我对角度很新,并且很难实现谷歌地图API.我一直收到错误:
Uncaught InvalidValueError: initialize is not a function.
Run Code Online (Sandbox Code Playgroud)
我有这个脚本标签:
<script src="https://maps.googleapis.com/maps/api/js?key=MY API KEY GOES HERE&callback=initialize"
async defer></script>
Run Code Online (Sandbox Code Playgroud)
但是因为我的函数initialize()在我的控制器内部,所以它无法识别它.如果我将该功能放在控制器之外,它就会识别它.但是因为我在控制器中定义了所有数据,所以我需要它.我甚至不确定我应该问什么,但我只需要让地图显示出来.有任何想法吗?
Vad*_*hev 10
您可以考虑同步加载Google Maps API ,如下所示
angular.module('myApp', [])
.controller('MyCtrl', function($scope) {
$scope.initialize = function() {
var map = new google.maps.Map(document.getElementById('map_div'), {
center: {lat: -34.397, lng: 150.644},
zoom: 8
});
}
google.maps.event.addDomListener(window, 'load', $scope.initialize);
});Run Code Online (Sandbox Code Playgroud)
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#map_div {
height: 480px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://code.angularjs.org/1.3.15/angular.js"></script>
<script src="https://maps.googleapis.com/maps/api/js" ></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<div id="map_div"></div>
</div>Run Code Online (Sandbox Code Playgroud)