Google maps 自动完成下拉输入选择不触发ngModelChange
当我从下拉列表中选择GoogleMaps地址自动完成结果时,它不会传递给我的父组件,但当我手动输入地址时,它会传递给我的父组件 我会开始输入,它会传递信息,一旦我选择了一个地址,它会为我填充其余的地址,但不会传递数据,即使它显示在输入框中 我使用此输入(在子模板中)通过google map div获取地址:Google maps 自动完成下拉输入选择不触发ngModelChange,google-maps,angular,eventemitter,Google Maps,Angular,Eventemitter,当我从下拉列表中选择GoogleMaps地址自动完成结果时,它不会传递给我的父组件,但当我手动输入地址时,它会传递给我的父组件 我会开始输入,它会传递信息,一旦我选择了一个地址,它会为我填充其余的地址,但不会传递数据,即使它显示在输入框中 我使用此输入(在子模板中)通过google map div获取地址: <input [(ngModel)]="address" (ngModelChange)="addressChange.emit($event)" id="pac-inpu
<input
[(ngModel)]="address"
(ngModelChange)="addressChange.emit($event)"
id="pac-input"
name='address'
class="mapControls"
type="text"
placeholder="Enter Address"
>
在我的父模板中:
<gmap [(address)]="address"></gmap>
显然还有更多的代码,但我认为这是重要的东西。有人知道如何做到这一点吗?当我从下拉列表中选择自动完成结果时,它会触发ngModelChange,并使用从选择中选择的数据进行更改? 既然我们使用了typescript,我就改变了谷歌的所有功能
function()
到
然后,在这些功能下的谷歌地图代码
searchBox.addListener('place_changed', () => {
places.forEach((place) => {
我打电话给发射器
this.addressChange.emit(place.formatted_address);
有一个巨大的延迟,有时像20秒,但它的工作
有人知道为什么在我从下拉列表中选择和发射器熄灭之间会有几秒钟的延迟吗?我真的很想消除这种延迟
如果使用promise对象,那么响应将非常快
return new Promise((resolve, reject) =>{
autocomplete.addListener('place_changed', () => {
var place = autocomplete.getPlace();
console.log("place "+place);
resolve(place);
});
})
searchBox.addListener('place_changed', () => {
places.forEach((place) => {
this.addressChange.emit(place.formatted_address);
return new Promise((resolve, reject) =>{
autocomplete.addListener('place_changed', () => {
var place = autocomplete.getPlace();
console.log("place "+place);
resolve(place);
});
})