2017-10-27 3 views
3

私はかなり新しく角度があり、基本的な問題だと思っています。agmマーカーがngforからレンダリングされない

私は

<agm-map [latitude]="lat" [longitude]="lng"> 
    <agm-marker [latitude]="location.lat" [longitude]="location.lng" *ngFor="let location of locations; let i=index"> 
     <agm-snazzy-info-window [maxWidth]="200" [closeWhenOthersOpen]="true"> 
      <ng-template> 
       <strong>{{location.title}}</strong> 
       <p>adresse</p> 
      </ng-template> 
     </agm-snazzy-info-window> 
    </agm-marker> 
</agm-map> 

私は手動でマーカーを設定すると、すべての作品が、私は私のリストをループに*ngForを使用する場合、マーカー用のHTMLが生成されたが、どうやらためのスクリプトの後のように私のマップを作成マップはマーカーを探したので、マーカーはレンダリングされません(マップ自体は)。私のコントローラから

export class LocationMapComponent implements OnInit { 

lat: number = 51.678418; 
lng: number = 7.809007; 
locations: Location[]; 

async ngOnInit() { 

} 

public async getLocations() { 
    this.locations = await this._locationService.getLocations(); 

} 

constructor(private _locationService:LocationService, private _coreCOMService: CoreCOMService, private _coreLanguageService: CoreLanguageService, private _coreLogService: CoreLogService, private _componentFactoryResolver: ComponentFactoryResolver, private _coreSystemService: CoreSystemService) { 

    this.getLocations(); 
} 

}

場所は、リモート・データベースからそれらをフェッチサービスからロードされます。私は問題は、ngForループが実行される前にマップがレンダリングされていると考えています。ループが最初に実行されたかどうかを確認する方法がわかりません。終わらせる。

これはおそらくかなり基本的なものですが、私は今や失礼しています。ありがとうございます。

+0

私はまったく同じ問題を抱えています –

+0

ロケーション配列の緯度/経度はNumberとタイプされていますか?私はlatlngがAPIから文字列として返されるという同様の問題を抱えていました。 – Dale

+0

@Daleそれは確かに文字列でした。私はそれを番号に変更し、今は動作します。どのバッフルが私にはちょっと、私には、latとundngがhtmlに貼り付けられているだけなので、それは問題ではないように見えるので、文字列か数値かは関係ありません。 p.s.私はそれを確認できるようにこれを答えにする必要があります。 – user3154108

答えて

3

緯度/経度は、Number型でなければなりません。それらがAPIや何らかのサービスから文字列として返されている場合は、変換する必要があります。私の経験から、厳密に数値としてタイプする必要があるようです。

関連する問題