1

我在使用gmaps的angular.dart項目中工作。 我想要在地圖上點擊獲取LatLng值。 我map.html:在MouseEvent中使用angular.dart找不到Gmaps LatLng

<div id="map" ng-click="ctrl.mapClick($event)"></div> 

我DartCtrl:

void mapClick(e){ 
    print(e.runtimeType); //MouseEvent 
    print(e.latLng); //error : Undifined function mapClick ... 
} 

任何想法得到經緯度值,而無需編寫類似:

map.onClick.listen((e){ 
print(e.latLng); 
}); 

*這happend在dartium所以其與dart2js無關。 並認爲你..

+0

這是否工作正常? 'map.onClick.listen((e){ print(e.latLng); });' –

+0

是的確定map是querySelector('#map') – youssef

+0

我可以'相信。 'MouseEvent'沒有'latLng' getter,那應該怎麼做?你能否檢查'e.detail'是否提供任何有用的信息? –

回答

0

返回的MouseEvent不是從HTML的MouseEvent繼承的本地代碼,它是'src/generated/core/events/mouse_event.dart',因此我的示例沒有可能的工作方式。 更好的方法是創建一個具有回調方法的NgDecorator,該方法返回特殊的MouseEvent希望包含LatLng

0

我認爲你需要像

import 'dart:js'; 

...

new JsObject.fromBrowserObject(e)['latLng'] 

(未測試)

的飛鏢JS-互操作見也js interop compiled with dart2js error - Uncaught NoSuchMethodError : method not found:

+0

我剛剛測試過它'new JsObject.fromBrowserObject(e)['latLng']'return null – youssef

+0

對不起,那我就沒有想法了。 –

+0

我認爲通常gmaps在偵聽器方法執行之前將latLng添加到MouseEvent,如果使用ng-click,則不會發生這種情況 – youssef