Hier ist ein einfacher Code, der für mich gut funktioniert hat (verwendet keine JQuery).
const googleAutcompleteField = this.renderer.selectRootElement(this.elem.nativeElement);
this.selectOnEnter(googleAutcompleteField);
Dieser Code wird, um dem obigen Code zu folgen, verwendet, um die automatische Vervollständigung von Google Maps zu implementieren (mit oder ohne die in dieser Frage gesuchte Eingabetaste):
this.autocomplete = new google.maps.places.Autocomplete(googleAutcompleteField, this.googleMapsOptions);
this.autocomplete.setFields(['address_component', 'formatted_address', 'geometry']);
this.autocomplete.addListener('place_changed', () => {
this.zone.run(() => {
this.googleMapsData.emit([this.autocomplete.getPlace()]);
})
})
selectOnEnter (oben im ersten Code aufgerufen) definiert:
selectOnEnter(inputField) {
inputField.addEventListener("keydown", (event) => {
const selectedItem = document.getElementsByClassName('pac-item-selected');
if (event.key == "Enter" && selectedItem.length != 0) {
event.preventDefault();
}
})
}
Mit diesem Code wählt das Feld für die automatische Vervollständigung von Google Maps das Element aus, das der Benutzer mit dem Abwärtspfeil auswählt. Sobald der Benutzer eine Option durch Drücken der Eingabetaste auswählt, geschieht nichts mehr. Der Benutzer muss erneut die Eingabetaste drücken, um onSubmit () oder einen anderen Befehl auszulösen