如何在scpoe中传递一个角度函数作为google maps api的回调

时间:2016-08-30 16:36:12

标签: angularjs google-maps

<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBQqRCD1ttWhl-kU9sTEEDmkkJivSpZAS8&callback=initializeMap"> </script>

如果它位于范围内,我如何将initializeMap回调函数传递给google maps api。

1 个答案:

答案 0 :(得分:1)

省略回调并将初始化函数放入指令

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"
        async defer>
</script>

<init-map map="vm.map">
</init-map>

JS

app.directive("initMap", function($window) {
    return {
        restrict: "E",
        template: '<div style="height: 400px;">XXX</div>',
        link: function(scope,elem,attrs) {
            var jElem = elem.find('div')[0];
            scope[attrs.map] = new google.maps.Map(jElem, {
                center: {lat: -34.397, lng: 150.644},
                zoom: 8
            });
        }
    };
});

上述指令将使用map属性定义的范围变量创建新地图。

DEMO on JSFiddle