Как создать автозаполнение google в bootstrap modal в angular 2+?
Я использую angular google maps (agm), я создал автозаполнение google ниже.
в html
<input type="text" #pick id="address" class="form-control" [(ngModel)]="pickAddress" name="pickAddress" (ngModelChange)="pickAdd()" placeholder="Pick Up Address" onclick="return false" style="padding-left: 30px;border-radius: 25px;border: 1px solid #31708f;"
в файле Ts:
pickAdd() {
var autocomplete:any;
var options = { componentRestrictions: {country: "IN"} };
this. inputAddress = document.getElementById('address');
autocomplete = new
google.maps.places.Autocomplete(this.inputAddress,options)
google.maps.event.addListener(autocomplete, 'place_changed', ()=> {
this.ngZone.run(() => {
this.zoom=8;
var place = autocomplete.getPlace();
this.lat = place.geometry.location.lat();
this.lng = place.geometry.location.lng();
this.getGeoLocation(this.lat,this.lng);
});
});
}
CSS
sebm-google-map {
height: 300px;
}
если я поставил вышеуказанный код в bootstrap modal, автозаполнение google не работает
Примечание:
выше код работает без загрузочного модального (в нормальном представлении)
Ответы
Ответ 1
Он работает в обычном режиме, и он не работает в модальном режиме, поэтому, я думаю, ваша проблема связана с z-index свойствами css.
Решение состоит в том, чтобы установить z-index объекта автозаполнения google больше, чем модальный индекс z начальной загрузки:
.pac-container {
z-index: 1054 !important;
}
Источник: https://github.com/twbs/bootstrap/issues/4160
Я уверен, что это проблема, потому что если вы просто следуете всей инструкции для ngx-bootstrap modal и AGM (вы используете старую версию sebm-google-map), вы заметите, что ошибок нет, но только элемент автозаполнения не отображается.
Посмотрите на этот плункер, который я создал (angular, ngx-bootstrap, angular -google-maps), и все в порядке:
https://embed.plnkr.co/N2Oiu5JzirOfUuA8Te3o/