2017-04-05 14 views
0

を使用して、私はこれが私のコードである角度2ここでngUIマップ

を試みたものです:

<ngui-map center="Brampton, Canada"> 
    <marker position="Brampton, Canada" 
     draggable="true" 
     (click)="clicked($event)"> 
    </marker> 
    <info-window id="iw"> 
     lat: [[lat]], lng: [[lng]] 
    </info-window> 
    </ngui-map> 

import { Component } from '@angular/core'; 
import { NguiMapComponent } from '@ngui/map'; 
    @Component({ 
    template: require('./app.html') 
    }) 
    class AppCompoment { 
    clicked(event) { 
     let marker = event.target; 
     marker.ng2MapComponent.openInfoWindow('iw', marker, { 
     lat: marker.getPosition().lat(), 
     lng: marker.getPosition().lng(), 
     }); 
    } 

私はこのエラーを取得しています:

Cannot read property 'openInfoWindow' of undefined 

どのように私はこの問題を修正することができます。

親切にアドバイスしてください。

答えて

0

は、子コンポーネントにアクセスするために@ViewChildを使用してみてください、ありがとうございました。

<ngui-map center="Brampton, Canada"> 
    <marker #mrker position="Brampton, Canada" 
     draggable="true" 
     (click)="clicked($event)"><!-- set id --> 
    </marker> 
    <info-window id="iw"> 
     lat: [[lat]], lng: [[lng]] 
    </info-window> 
    </ngui-map> 

コンポーネントクラス:

import { Component,ViewChild } from '@angular/core'; 
import { NguiMapComponent } from '@ngui/map'; 
    @Component({ 
    template: require('./app.html') 
    }) 
    class AppCompoment { 
    @ViewChild(NguiMapComponent) 
    ngMap:NguiMapComponent; 

    //@ViewChild('mrker') 
    //marker:any; 

    clicked(event) { 
     let marker = event.target; 
     this.ngMap.openInfoWindow('iw', marker, { 
     lat: marker.getPosition().lat(), 
     lng: marker.getPosition().lng(), 
     }); 
    } 
+0

Thanks.IこのERRのthis.marker.getPositionを得ることが – ANISUNDAR

+0

は、APIのわからない関数ではありません...コンソールログマーカとチェック –

+0

私はマーカの値が未定義であることを慰めました – ANISUNDAR

0
<ngui-map zoom="14" [center]="center" (mapClick)="onMapClick($event)"> 
    <marker *ngFor="let pos of positions" 
      [position]="pos" (click)="clickedMarker($event)" ></marker> 
    <info-window id="iw"> 
    <div *ngIf="infoposition"> 

     lat: {{ position.coords.latitude }}, lng: {{ position.coords.longitude }} 
    </div> 

    </info-window> 


</ngui-map> 




clickedMarker(event:any) { 
let marker = event.target; 
let lat = marker.getPosition().lat(); 
let lng= marker.getPosition().lng(); 
marker.nguiMapComponent.openInfoWindow('iw', marker); 

}

+0

あなたが行った変更についての説明を親切に追加してください –