2014-11-07 5 views
2

sample-google-maps을 수정하여 폴리머 요소 내부에서 작업하려고합니다. 다음 코드를 실행하면 제목을 제외한 아무 것도 보이지 않으며 오류가 없습니다. 어떻게이 작업을 수행 할 수 있는지 알려주십시오.폴리머 요소 내부의 다트에서 javascript를 사용하는 방법

google-chart api와 Polymer dart를 사용하여 추가 구성 요소를 정의하고 싶습니다. 누군가 나를 해결할 수있는 예를 가리킬 수 있습니까?

index.html을

<!DOCTYPE html> 

<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>DEMO</title> 
    <script type="text/javascript" src="packages/web_components/platform.js"></script> 
    <link rel="import" href="lib_elements/googlemapcanvas/googlemapcanvas.html"> 

    <script type="text/javascript" 
    src="https://maps.googleapis.com/maps/api/js?sensor=false"> 
    </script> 
    </head> 

    <body> 
    <h1> Trial for Charted Library</h1> 

    <google-map-canvas></google-map-canvas> 

    <!-- bootstrap polymer --> 
    <script type="application/dart">export 'package:polymer/init.dart';</script> 
    <script src="packages/browser/dart.js"></script> 
    <script src="packages/browser/interop.js"></script> 
    </body> 
</html> 

googlemapcanvas.html

<!-- import polymer-element's definition --> 
<link rel="import" href="packages/polymer/polymer.html"> 

<polymer-element name="google-map-canvas" attributes="title"> 

    <template> 
    <style> 
     #google-map-canvas { 
      height:100% 
     } 
    </style> 
    <h1>{{title}}</h1> 
    <div id="google-map-canvas"></div> 
    </template> 
    <script type="application/dart" src="googlemapcanvas.dart"></script> 
</polymer-element> 

이것은 CSS 문제, 폴리머에 아마도 특정하지만 모든 CSS 문제입니다

import 'package:polymer/polymer.dart'; 
import 'dart:js' as js; 
import 'dart:html'; 
/** 
* A Polymer click counter element. 
*/ 
@CustomTag('google-map-canvas') 
class GoogleMapCanvas extends PolymerElement{ 

    @published String title = "Google Map Canvas"; 
    DivElement googlemapcanvas; 


    GoogleMapCanvas.created(): super.created(){ 

    } 

    @override 
    void attached(){ 
    googlemapcanvas = $['google-map-canvas']; 
    draw(); 
    } 

    draw(){ 
    final google_maps = js.context['google']['maps']; 
    var center = new js.JsObject(google_maps['LatLng'], [-34.397, 150.644]); 
    var mapTypeId = google_maps['MapTypeId']['ROADMAP']; 

    var mapOptions = new js.JsObject.jsify({ 
     "center": center, 
     "zoom": 8, 
     "mapTypeId": mapTypeId 
    }); 

    new js.JsObject(google_maps['Map'],[googlemapcanvas, mapOptions]); 

    } 
} 

답변

1

googlemapcanvas.dart 똑같다. 당신이 할 수있는 몇 가지 일이 있습니다. 가장 간단한 방법은 < 본문 >에 속성으로 fullbleed를 추가하는 것입니다.

<body unresolved fullbleed> 

</body> 

지도가 표시되어 남은 공간을 차지합니다. 또는 그렇게

<polymer-element ...> 
    <template> 
     <style> 
      :host { 
       height: 500px; 
      } 
      ... 
     </style> 
     ... 
    </template> 
</polymer-element> 

같은 픽셀의 높이를 가지고 당신의 구글 -지도 - 캔버스 요소의 높이를 지정할 수 있습니다 그리고지도는 그냥 전에 넣어 제목 후 남은 공간을 채울 것입니다. 하지만 당신이 요소를 주었던 500px를 넘지는 못할 것입니다. 당신이 할 수있는 다른 속임수가 있습니다. 더 많은 방법이 스타일의 폴리머 요소 귀하의 질문에 대한 답변

https://www.polymer-project.org/docs/polymer/styling.html

희망에 폴리머 요소

https://www.polymer-project.org/docs/polymer/layout-attrs.html

그리고 가이드 레이아웃을 위해이 사이트에서보고 싶은데.

그런데, 당신은 Google Maps API의 포트가 Dart에 있다는 것을 알고 있습니까?

https://pub.dartlang.org/packages/google_maps

관련 문제