Google maps api 3 places api无法获取属性';地址"组件"';指未定义的或空的引用
使用GooglePlacesAPI无法理解为什么autocomplete在调用GetPlaces时返回undefined。 开发人员工具显示的是。 地址\组件是调用autocomplete.getPlace时应返回的内容 无法获取未定义或空引用的属性“address\u components”Google maps api 3 places api无法获取属性';地址"组件"';指未定义的或空的引用,google-maps-api-3,google-places-api,Google Maps Api 3,Google Places Api,使用GooglePlacesAPI无法理解为什么autocomplete在调用GetPlaces时返回undefined。 开发人员工具显示的是。 地址\组件是调用autocomplete.getPlace时应返回的内容 无法获取未定义或空引用的属性“address\u components” function initAutoCompleteDynamic() { var slideID = 99; var idx = 99 - slideID; var propcount = 5; f
function initAutoCompleteDynamic() {
var slideID = 99;
var idx = 99 - slideID;
var propcount = 5;
for (var i = 0; i < propcount; i++) {
var propaddress = "prop1address" + i;
var autocomplete = autocomplete + i;
autocomplete = new google.maps.places.Autocomplete(
document.getElementById(propaddress)),
{ types: ['geocode'] };
autocomplete.addListener('place_changed', fillinAddressDynamic);
}
}
函数initAutoCompleteDynamic(){
var=99;
var idx=99-slideID;
var-propcount=5;
对于(变量i=0;i
而且在动态中
var place=autocomplete.getPlace():
for (var i = 0; i < place.address_components.length; i++) {
alert("i am in the loop");
var addressType = place.address_components[i].types[0];
var field = addressType;
var completeaddress1 = '';
var propaddress = 'prop1address' + i;
var strnum = 'streetnumber' + i;
CR(i);//calling component resolver.
if (componentFormProduction[addressType]) {
var val = place.address_components[i][componentFormProduction[addressType]];
document.getElementById(CR[addressType]).value = val;
if (field == "street_number") {
var streetnum = document.getElementById(strnum).value = val;
}
if (field == "route") {
if (streetnum) {
completeaddress1 = streetnum + ' ' + val;
}
else {
completeaddress1 = val;
}
document.getElementById('prop1address0').value = completeaddress1;
}
}
}
var place=autocomplete.getPlace():
对于(变量i=0;i
如果用户(或您)在未单击建议的情况下按Enter键,则会发生这种情况
通常,事件的顺序如下所示:
地址\u组件
)并触发更改位置
事件places\u changed
的处理程序将通过调用getPlace()
Enter
,而不点击其中一个places\u changed
事件places\u changed
的处理程序调用getPlace()
并获取一个几乎为空的Place对象,其中只有name
字段包含原始用户输入不,这不是因为没有选择地址,我相信这是由于调用的异步性质,这是来自google api的动态加载数据,我认为修复方法是使用自定义延迟对象,这似乎是一个计时错误有时它工作有时它不延迟应该修复/让它等待足够长的时间才能完成。