Javascript 无法使用angular 2在谷歌地图的infowindow中触发单击事件

Javascript 无法使用angular 2在谷歌地图的infowindow中触发单击事件,javascript,jquery,google-maps,google-maps-api-3,infowindow,Javascript,Jquery,Google Maps,Google Maps Api 3,Infowindow,我正在尝试在谷歌地图的信息窗口中点击。我无法用以下代码实现。谁能告诉我哪里做错了 loadmap(){ var locations = [];var map; for(var i=0;i<this.data.length; i++){ locations.push({ 'location_name':this.data[i].location_name, }); } var marker;

我正在尝试在谷歌地图的信息窗口中点击。我无法用以下代码实现。谁能告诉我哪里做错了

loadmap(){
    var locations = [];var map;
     for(var i=0;i<this.data.length; i++){
         locations.push({
             'location_name':this.data[i].location_name,
         });
     }
     var marker; var icon;
     map   = new google.maps.Map(document.getElementById('map'), {
        zoom: 2,
        center: new google.maps.LatLng(40.4637, 3.7492),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });
    map.markers = [];
    var infowindow = new google.maps.InfoWindow({
       enableEventPropagation: true
    });
     for (var i = 0; i < locations.length; i++) {         
            marker = new google.maps.Marker({
                position: new google.maps.LatLng('lat', 'lng'),
                map: map,
            });              
            google.maps.event.addListener(marker, 'click', (function(marker, i) {          
                return function() {              
                    infowindow.setContent(
                        '<span>'+locations[i].location_name+'</span><br/>'+
                        '<input type="button" id="infowindow_submit" name="submit" value ="submit"/>'
                    );
                    infowindow.open(map, marker);
               };
            })(marker, i));
            google.maps.event.addListener(infowindow, 'domready', function() {
                $("#infowindow_submit").submit(function() {
                    console.log("hi!");
                });
            });
    }
}  
loadmap(){
var位置=[];var映射;

对于(var i=0;i我认为您的问题是您正在使用一个按钮,但试图添加一个表单事件侦听器

$(“#infowindow_submit”).submit(()=>console.log(“hi!”)
适用于表单,但不适用于单个按钮

您正在查找
$(“#信息窗口_提交”)。单击(()=>console.log(“嗨!”)

我相信你的评论可能相互矛盾,这正是我注意到上述问题的原因

当我单击信息窗口中的按钮时,没有发生任何事情。单击 正在执行标记的处理程序,但未执行infowindow domready 部分


如果您单击信息窗口中的某个按钮,则
domready
事件应该已经触发。我以为您根本无法打开信息窗口。我想我第一次没有读对……您没有
控制台.log
,也没有说您试图在那里放置断点。
控制台.log
哟你确实有一个在
submit
事件中,但在
domready
事件函数中没有。希望
domready
实际上被解雇了。

这大部分看起来不像是角度代码…定义了
infowindow
的地方在哪里?你是不是在为仅仅使用角度代码而挣扎纯JS事件处理程序或无法将其集成到Angular中。我想可能会有Google Maps npm包与Angular集成得更好,尽管我还没有看过。您是否遇到任何控制台错误?是否可以在单击处理程序中放置断点或
console.log
,然后查看代码是否得到执行?我正在使用g纯JS代码在我的angular项目中显示地图。我在控制台中没有收到任何错误,当我单击infoWindow中的按钮时也没有发生任何事情。正在执行标记的click handler,但没有执行infoWindow domready部分。该部分未调试。我想您的问题可能是
infoWindow
未定义。您还有其他代码吗?中的答案似乎创建了一个名为的变量。@ScottyWaggoner我已经更新了我的代码…定义了信息窗口,但问题仍然存在。谢谢。这是我这边的一个错误。它正在工作。您是对的。我应该使用单击