Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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
Javascript 谷歌地图信息窗口点击按钮_Javascript_Google Maps_Typescript_Ionic Framework - Fatal编程技术网

Javascript 谷歌地图信息窗口点击按钮

Javascript 谷歌地图信息窗口点击按钮,javascript,google-maps,typescript,ionic-framework,Javascript,Google Maps,Typescript,Ionic Framework,我使用Googlemap JS API,我从数据库中获取了一些标记和一个infowindow foreach标记,在每个infowindow上我都有一个按钮,希望用某个变量推到另一个页面,我尝试使用ngZone,我不是很熟悉,但我尝试了x),我的代码如下: // GET request to get data from database for(var i=0;i<data.length;i++) { var ouvrier=data[i].firstname+' '+

我使用Googlemap JS API,我从数据库中获取了一些标记和一个infowindow foreach标记,在每个infowindow上我都有一个按钮,希望用某个变量推到另一个页面,我尝试使用ngZone,我不是很熟悉,但我尝试了x),我的代码如下:

  // GET request to get data from database
  for(var i=0;i<data.length;i++)
  {

   var ouvrier=data[i].firstname+' '+data[i].lastname; //Getting data from db

   var Latlng = new google.maps.LatLng(data[i].lat,data[i].lon);
     var marker = new google.maps.Marker({
      position: Latlng,
      map: this.map,
      labelAnchor: new google.maps.Point(22, 0),
      draggable:false,
      icon: { url : 'assets/imgs/worker.png',scaledSize: new google.maps.Size(70, 70)
    },

    });




    var infowindow = new google.maps.InfoWindow({
      content: "Name: "+ouvrier+" <input type='button' id='clickableItem' value='consulter profile' >"
    }); 

    google.maps.event.addListener(infowindow, 'domready', () => {

      var clickableItem = document.getElementById('clickableItem');
      clickableItem.addEventListener('click', () => {
        this.zone.run( () => { //Im using ngZone
          console.log("wlidoz "+ data[i].idprof);
        this.navCtrl.push(ProfilPage, {
          profilId: data[i].idprof // PROBLEM HERE
      });

        });


      });
    });

  marker.addListener('click', event => {
    infowindow.open(this.map, marker);
    });

}
//从数据库获取数据的GET请求
对于(var i=0;i{
var clickableItem=document.getElementById('clickableItem');
clickableItem.addEventListener('click',()=>{
this.zone.run(()=>{//Im使用ngZone
log(“wlidoz”+数据[i].idprof);
这个.navCtrl.push(ProfilPage{
profilId:data[i].idprof//这里有问题
});
});
});
});
marker.addListener('click',event=>{
infowindow.open(this.map,marker);
});
}
一切正常,地图正在加载…等等
但是当我点击这个按钮时,什么也没有发生,我试图在ngZone内的console.log中输入
数据[i].idprof
,但是它没有定义,但是在侦听器之前console.log工作了我修复了它,我只是在
google.maps.event.addLister之前声明了一个变量:

let idz=data[i].idprof;
    let that=this;
    google.maps.event.addListener(infowindow, 'domready', () => {

      var clickableItem = document.getElementById('clickableItem');
      clickableItem.addEventListener('click', () => {
        that.zone.run( () => {
        that.navCtrl.push(ProfilPage, {
          profilId: idz
      });

        });


      });
    });
如果有人有更好的解决办法,我就要了