Javascript 为什么谷歌地图API';没有从RequireJS正确调用s方法?
我正在尝试将我的JS代码迁移到RequireJS中,有一些困难。 在其中一个模块中,我有一个函数,负责在表单的输入字段中初始化Google Maps API的Place Autocomplete: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
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!回调“