Я пытаюсь написать полимерный элемент, отвечающий за рисование представления карт Google.Dart + Polymer + google_maps
Это код:
@CustomTag('map-element')
class MapElement extends PolymerElement {
...
@override
void attached() {
super.attached();
canvasMap = $['canvas_map'];
initMap();
window.navigator.geolocation.watchPosition(enableHighAccuracy: true)
.listen(
(Geoposition position) {addPosition(position);},
onError: (error) => handleError(error));
}
...
void initMap(){
gmap = new GMap(
canvasMap,
new MapOptions()
..zoom = 4
..center = new LatLng(0, 0)
..mapTypeId = MapTypeId.ROADMAP
);
line = new Polyline(
new PolylineOptions()
..map = gmap
..strokeColor='#0022ee'
..geodesic=true
..strokeOpacity=0.7
..strokeWeight=2
..visible=true);
}
}
И это исключение генерируется, когда я пытаюсь создать экземпляр GMAP:
Class 'GElement' has no instance method '[]'.
NoSuchMethodError: method not found: '[]'
Receiver: Instance of 'GElement'
Arguments: ["maps"]
Я думаю, что проблема в том, что полимер использует DOM тень, знаете ли вы какое-нибудь обходное решение?
Вот весь проект: https://github.com/carlosvin/snowroute
Сейчас он работает, здесь вы можете попробовать: http://carlosvin.github.io/snowroute/
Я добавил тег яваскрипта только в index.html, а не в объявлении элемента полимера ,
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
Моя попытка в https://github.com/carlosvin/snowroute, соответствующие файлы для этого вопроса являются: веб/map_element.dart, веб/map_element.html и веб/index.html.
У меня нет времени на сераш, но я думаю, что были похожие вопросы для Angular.dart, где ответ мог бы сработать и для вас. –
Спасибо, я собираюсь искать Angular.dart, тогда я опубликую результаты моих исследований. Я искал аналогичные проблемы для Polymer.dart, но я не мог найти обходное решение. – carlosvin