2015-04-04 71 views
0

我想处理地图上的标记点击事件,所以我想扩展谷歌地图标记。这是my-map-marker.html:自定义Google地图标记与聚合物项目

<link rel="import" href="../bower_components/google-map/google-map.html"> 

    <polymer-element name="my-map-marker" extends="google-map-marker"> 
    <script> 
     Polymer({ 
      click: function() { 
      console.log("latitude:", this.latitude); 
      }, 
     }); 
     </script> 
    </polymer-element> 

and I use it in another element as: 

<paper-input value={{query}} label="Where?" floatingLabel></paper-input> 

      <google-map-search map="{{map}}" query="{{query}}" results="{{results}}"></google-map-search> 

      <google-map map="{{map}}" fitToMarkers> 
       <template repeat="{{results}}"> 
        <my-map-marker latitude="{{latitude}}" longitude="{{longitude}}" clickEvents="true"> 
         <h2>{{name}}</h2> {{formatted_address}} 
        </my-map-marker> 
       </template> 
      </google-map> 

我的代码在地图上显示匹配的标记,因为我输入位置名称,如果我使用。但它会在开发人员控制台中提供以下错误代码:

未捕获的类型错误:无法读取nullgoogle-map.html的属性“setMap”:197 Polymer.detachedpolymer.js:9961 base.detachedCallbackpolymer.js:7348 TemplateIterator.extractInstanceAtpolymer.js:7393 TemplateIterator.handleSplicespolymer.js:7301 TemplateIterator.valueChangedpolymer.js:7284 TemplateIterator.updateValuepolymer.js:7275 TemplateIterator.updateIteratedValuepolymer.js:4913 Observer.report_polymer.js:5180 createObject.check_polymer.js:4811 callback

如何扩展google-map-marker?

回答

1

基于聚合物的文档:“如果你使用扩展到创造,从现有的DOM元素派生(其他东西比HTML元素)聚合物元素”,这句法工作:

<google-map-marker is="my-map-marker" map="{{map}}" latitude="{{latitude}}" longitude="{{longitude}}"> 
    <h2>{{name}}</h2> {{formatted_address}} 
</google-map-marker>