0
Googleマップを複数のコンポーネントにまとめて設定して、同じページにすべて表示するようにしました。すべてのユニークな動的IDを与える必要がありました。中の初期化ngAfterViewInit()
私は信じています。だから私はそれをしましたが、私の地図は表示されません。ここでは、私のコンポーネントでGoogle MapsがAngular ngAfterViewInitで初期化されていない
...私が持っているものだ:
はngAfterViewInit(){
this.randId = this.randomIdGenerator(); <-- Generates an ID for the elements
this.mapId = 'map-'+this.randId;
this.pacId = 'pac-input-'+this.randId;
this.map = new google.maps.Map(document.getElementById(this.mapId), this.mapConfig);
this.input = <HTMLInputElement>document.getElementById(this.pacId);
this.map.set("mapTypeId", 'roadmap');
this.searchBox = new google.maps.places.SearchBox(this.input);
this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(this.input);
this.searchBox.addListener('places_changed',() => {
this.placesChanged(this.searchBox.getPlaces()[0]);
});
}
テンプレート:
<md-card>
<input
style="color:black"
id="{{pacId}}"
name='address'
class="mapControls"
type="text"
value=""
placeholder="Enter Address">
<div id="{{mapId}}"></div>
</md-card>
のは、要素に割り当てられているIDが、しかしマップは、単に表示されません。私はどちらかのエラーを取得していないよ...それはコードが要素を見つけることです。だからそれは良いです。しかし、それが見つかった後、マップは開かない。
id = "{{pacId}}" ' - >' id = "pacId" ' –
同じ問題。地図はロードされていません。 'ngOnInit'に入れたときにロードされていましたが、その時点でテンプレートIDが空であるために動作しませんでした – Jus10
' mapId'に対して同じことをしましたか? –