dart谷歌地图-触发事件

dart谷歌地图-触发事件,dart,Dart,我尝试在自动完成框中添加一个侦听器,以便在按enter键时选择第一个选项,但它不起作用 event.addDomListener(input, 'keypress', (e) { if (e.keyCode == 13) { event.trigger(html.document.getElementById('pac-input').innerHtml, 'keydown', html.KeyCode.DOWN); } }); 我不确定 html.docume

我尝试在自动完成框中添加一个侦听器,以便在按enter键时选择第一个选项,但它不起作用

event.addDomListener(input, 'keypress', (e) {
  if (e.keyCode == 13) {
    event.trigger(html.document.getElementById('pac-input').innerHtml, 'keydown',
        html.KeyCode.DOWN);
  }
});
我不确定

html.document.getElementById('pac-input').innerHtml
谢谢你的帮助

[编辑]

我使用angular2.0.0-beta.21

我的模板是:

<input id="pac-input" class="controls" type="text"
   placeholder="Enter a location">
<div id="map-canvas" style="height: 500px;"></div>

以下代码应该可以工作:

import'dart:js_util'show jsify;
addDomListener(输入'keypress',(e){
断言(e是html.KeyboardEvent);
if(e.keyCode==html.keyCode.ENTER){
触发器(输入'keydown',jsify({'keyCode':html.keyCode.DOWN});
}
});
您也可以使用以下选项触发事件:

input.dispatchEvent(新的html.KeyEvent('keydown',keyCode:html.keyCode.DOWN));

看起来像是我想使用谷歌地图库中的
事件触发器,但这可能可以通过
分派
方法完成。我想主要的问题是创建一个
键盘事件
,并设置正确的键码和其他属性。Google Maps Api的
触发器
实际上是针对Google.Maps类中的对象,而不是文本输入字段。感谢您的回复。我尝试了
event.trigger(输入,'keydown',{keyCode:40}) @Component(
     selector: 'myComponent',
     templateUrl: 'template.html',
     pipes: const [IntlPipe]
 )
 class MyComponent implements OnInit {

   final UserService _userService;
   final IntlService _intlService;

   Autocomplete autocomplete;

   GMap map;

   String infoMessage = "";
   String errorMessage = "";

   CornersComponent(this._userService, this._intlService);

   @override
   ngOnInit() {
     var mapOptions = new MapOptions()
       ..zoom = 13
       ..maxZoom = 19
       ..minZoom = 12
       ..center = new LatLng(48.871083, 2.346348)
       ..mapTypeId = MapTypeId.ROADMAP
       ..streetViewControl = false
       ..panControl = false
       ..mapTypeControl = false
       ..scrollwheel = false
       ..styles = <MapTypeStyle>[
         new MapTypeStyle()
           ..featureType = MapTypeStyleFeatureType.POI_BUSINESS
           ..elementType = MapTypeStyleElementType.LABELS
           ..stylers = <MapTypeStyler>[
             new MapTypeStyler()
               ..visibility = 'off'
           ]
       ];

     map = new GMap(html.querySelector("#map-canvas"), mapOptions);

     var input = html.document.getElementById('pac-input') as html
         .InputElement;
     map.controls[ControlPosition.TOP_LEFT].push(input);
     autocomplete = new Autocomplete(input);
     autocomplete.bindTo('bounds', map);

     final infowindow = new InfoWindow();
     final marker = new Marker(new MarkerOptions()
       ..map = map
       ..anchorPoint = new Point(0, -29));


     autocomplete.onPlaceChanged.listen((_) {
       infowindow.close();
       marker.visible = false;

       final place = autocomplete.place;
       if (place.geometry == null) {
         return;
       }

       // If the place has a geometry, then present it on a map.
       if (place.geometry.viewport != null) {
         map.fitBounds(place.geometry.viewport);
       } else {
         map.center = place.geometry.location;
         map.zoom = 15; // Why 17? Because it looks good.
       }

       marker.icon = new Icon()
         ..url = place.icon
         ..size = new Size(71, 71)
         ..origin = new Point(0, 0)
         ..anchor = new Point(17, 34)
         ..scaledSize = new Size(35, 35);
       marker.position = place.geometry.location;
       marker.visible = true;

       String address = '';
       if (place.addressComponents != null) {
         address = [
           (place.addressComponents[0] != null &&
               place.addressComponents[0].shortName != null
               ? place.addressComponents[0].shortName
               : ''),
           (place.addressComponents[1] != null &&
               place.addressComponents[1].shortName != null
               ? place.addressComponents[1].shortName
               : ''),
           (place.addressComponents[2] != null &&
               place.addressComponents[2].shortName != null
               ? place.addressComponents[2].shortName
               : '')
         ].join(' ');
       }

       infowindow.content = '<div><strong>${place.name}</strong><br>${address}';
       infowindow.open(map, marker);
     });     

    event.addDomListener(input, 'keypress', (e) {
        assert(e is html.KeyboardEvent);
        if (e.keyCode == html.KeyCode.ENTER) {
             event.trigger(input, 'keydown',
             new html.KeyEvent('keydown', keyCode: html.KeyCode.DOWN));
  }
});
   }
 }
function myJavascriptMethod() {
    var input = document.getElementById('pac-input');
    google.maps.event.addDomListener(input, 'keypress', function (e) {

        if (e.keyCode === 13) {
            google.maps.event.trigger(this, 'keydown', {"keyCode": 40});

        }
    });
}