Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ionic2/angular 2-*用于不处理地图标记内容_Angular_Google Maps_Ngfor - Fatal编程技术网

ionic2/angular 2-*用于不处理地图标记内容

ionic2/angular 2-*用于不处理地图标记内容,angular,google-maps,ngfor,Angular,Google Maps,Ngfor,我正在尝试在地图标记器的信息窗口中打印数据。我设法在控制台中获取数据,但无法在信息窗口中打印。标记和信息窗口确实出现在地图上,只是检索数据失败 代码用于测试,因此我只从JSON对象数组中获取一个对象 我在maps.html上测试了*nglet的maps.data列表,数据确实出现了 感谢您的帮助并提前表示感谢:) 获取存储在谷歌地图提供商中的位置和显示标记的功能 initMap(): Promise<any> { this.mapInitialised = true; retur

我正在尝试在地图标记器的信息窗口中打印数据。我设法在
控制台中获取数据,但无法在信息窗口中打印。标记和信息窗口确实出现在地图上,只是检索数据失败

代码用于测试,因此我只从JSON对象数组中获取一个对象

我在
maps.html
上测试了
*nglet的maps.data列表,数据确实出现了

感谢您的帮助并提前表示感谢:)

获取存储在谷歌地图提供商中的位置和显示标记的功能

initMap(): Promise<any> {

this.mapInitialised = true;

return new Promise((resolve) => {

  this.geolocation.getCurrentPosition().then((position) => {

    // fixed position
    let latLng = new google.maps.LatLng(1.352100, 103.819800);

    let mapOptions = {
      center: latLng,
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    this.map = new google.maps.Map(this.mapElement, mapOptions);

      let marker = new google.maps.Marker({
      map: this.map,
      animation: google.maps.Animation.BOUNCE,
      position: this.map.getCenter(),
      disableDefaultUI: true,
    });

     let mapListings = this.load();
     let data = this.mapListings;
     console.log(this.data[0]);


     let content = '<ion-item *ngFor="let listing of this.data[0]">' + 
     '<h2 class="payment_color">{{ listing.ListingTitle }}</h2>' + 
     '<p>{{ listing.ListingDatePosted }}</p>' +
     '<p>{{ listing.ListingDescription }}</p>' +
     '</ion-item>';          

     this.addInfoWindow(marker, content);

    resolve(true);


  });

});
console.log(this.data[0])输出

t {__zone_symbol__state: true, __zone_symbol__value: Array(4)}
__zone_symbol__state: true
__zone_symbol__value: Array(4)
__proto__: Object
Object {ListingTitle: "This is the Title", 
ListingDatePosted: "20-July-2017", 
ListingDescription: "Hello World"}
信息窗口上的输出

{{ listing.ListingTitle }}
{{ listing.ListingDatePosted }}
{{ listing.ListingDescription }}

试试这个。用以下代码替换let内容

let content = `<ion-item *ngFor="let listing of this.data[0]">
     <h2 class="payment_color">{{ listing.ListingTitle }}</h2>
     <p>{{ listing.ListingDatePosted }}</p>
     <p>{{ listing.ListingDescription }}</p>
     </ion-item>`;       

我试着用另一种方法,效果很好。不知道为什么不工作

for ( let listing of this.data){
 let content = '<ion-item>' + 
     '<h2 style="color:red;">' + listing.ListingTitle +'</h2>' + 
     '<p>' + listing.ListingDatePosted + '</p>' +
     '<p>' + listing.ListingSalary + '</p>' +
     '</ion-item>';  
}
for(让我们列出这个.data){
让内容=“”+
''+listing.ListingTitle+''+
“”+listing.ListingDatePosted+”

”+ “”+listing.ListingSalary+”

”+ ''; }
是。它仍然返回{listing,ListingTitle}。我尝试了“{listing.ListingTitle}}”。样式设置工作正常,但数据没有出现。您在调用initMap()吗?能否将对initMap的调用包装在ngZone中?initMap()是从提供程序调用的。
for ( let listing of this.data){
 let content = '<ion-item>' + 
     '<h2 style="color:red;">' + listing.ListingTitle +'</h2>' + 
     '<p>' + listing.ListingDatePosted + '</p>' +
     '<p>' + listing.ListingSalary + '</p>' +
     '</ion-item>';  
}