ngxAutocomPlace : Angular Google Places API Autocomplete Directive
Add this directive to any input to activate the google places autocomplete feature.
It uses google place API programmatically instead of the ready to use autocomplete javascript widget provided by google. This allows to handle keydown.enter events to select the first result automatically, and access the predictions for further customisations.
Tested with :
Framwork | Version |
---|---|
Angular | 8 + |
Ionic | 4 + |
Install
npm i --save ngx-autocom-place
import NgxAutocomPlaceModule
in your app module.
- Add this to index.html
<script src="https://maps.googleapis.com/maps/api/js?key=<YourApiKey>&libraries=places&language=en"></script>
Usage
<input type="text" ngxAutocomPlace (selectedPlace)="placeChangedCallback($event)"/>
- attribute
[options]
(optional) can be added to pass (ref: https://developers.google.com/maps/documentation/javascript/reference/places-widget)
Api
ngxAutocomPlace
[options]
Use to customise the autocomplete options. (optional) Default to :
{
types: ["geocode"]
}
(selectedPlace)
Emit selected place result.
Format : https://developers.google.com/maps/documentation/javascript/reference/places-service#PlaceResult
(predictions)
Emit predictions on user input. (optional) Format : https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompletePrediction
[handleEnterKeydown]
Set handler for enter key press event by user with first result selection from google predictions dropdown. (optional) Default: True
[hideResultDropdown]
Set to true to not display the result dorpdown and handle predictions by your own. (optional) Default: False
[debounceTime]
Time to delay each input event (rxjs debounceTime) (optional) Default: 150 (ms)
NgxAutocomPlaceService
getPredictions
getPlacePrediction
implementation : https://developers.google.com/maps/documentation/javascript/reference/places-autocomplete-service#AutocompleteService.getPlacePredictions
getPlaceDetails
getDetails
implementation : https://developers.google.com/maps/documentation/javascript/reference/places-service#PlacesService.getDetails