Javascript 为什么谷歌地图API';没有从RequireJS正确调用s方法?

Javascript 为什么谷歌地图API';没有从RequireJS正确调用s方法?,javascript,google-maps,asynchronous,google-maps-api-3,requirejs,Javascript,Google Maps,Asynchronous,Google Maps Api 3,Requirejs,我正在尝试将我的JS代码迁移到RequireJS中,有一些困难。 在其中一个模块中,我有一个函数,负责在表单的输入字段中初始化Google Maps API的Place Autocomplete: define( ['jquery'], function($) { return { ... autocomplete_init : function(autocomplete_element, place_id_elem

我正在尝试将我的JS代码迁移到RequireJS中,有一些困难。 在其中一个模块中,我有一个函数,负责在表单的输入字段中初始化Google Maps API的Place Autocomplete:

define(
    ['jquery'],
    function($) {
        return {
            ...
            autocomplete_init : function(autocomplete_element, place_id_element) {
                var input = $('#'+autocomplete_element);

                autocomplete = new google.maps.places.Autocomplete(input,
                    { types: ['(cities)'] }
                );

                google.maps.event.addListener(autocomplete, 'place_changed', function() {

                    var place = autocomplete.getPlace();

                    $('#'+place_id_element).val(place.place_id);
                });
            },
            ...
        }
    }
);
函数autocomplete_init是从连接到API的另一个模块调用的:

require.config({
    baseUrl: 'js/lib',
    paths: {
        'app': '../app',
        jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min',
        async: 'require/async',
        'maps-api': 'https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=places',
    },
    shim: {
        'maps-api': {
            deps: []
        },
        'destinations-map': {
            deps: ['jquery', 'async!maps-api']
        },
    },
});

require(
    ['jquery', 'app/form', 'destinations-map'],
    function($, form){
        ...
        // form - это модуль, в котором хранится показанная выше функция
        form.autocomplete_init('location_input', 'destination_place_id');
    }
);
模块目的地地图通过shim连接,还与Google Maps API配合使用,它在地图上做标记。它成功地工作了。 同时,当我运行如上图所示的“autocomplete_init”时,autocomplete不起作用,但是,控制台中有一个错误,表明加载了一些最小化的JS脚本,因此我无法找出这个错误的确切含义

但正如您从错误中看到的,我的代码的最后一行,在它之后开始在Google API的荒野中徘徊,如下所示:一个函数autocomplete_init,具体来说,如下所示:

autocomplete = new google.maps.places.Autocomplete(input,
    { types: ['(cities)'] }
);

告诉我,出了什么问题以及如何修复?如何使Google Maps API的Place Autocomplete开始使用RequireJS?

您需要在URL参数中指定回调函数(
&callback=
)。像这样:

异步!http://maps.google.com/maps/api/js?v=3&libraries=places!回调“