Javascript 函数未在html onclick和ng click中定义,并且ui sref未触发

Javascript 函数未在html onclick和ng click中定义,并且ui sref未触发,javascript,angularjs,google-maps,button,angular-ui-bootstrap,Javascript,Angularjs,Google Maps,Button,Angular Ui Bootstrap,我想通过点击按钮打开一个模式,该模式被动态添加到地图上标记的信息窗口中 我现在尝试了几种方法,比如使用onclick、ng click和ui sref。onclick不起作用,因为它说我的函数没有定义。ng click未触发,并且用于使用$state.go('someState')-方法的ui sref也未触发 var createMarkerOnMap = function (param) { if (param.hasOwnProperty('type')) {

我想通过点击按钮打开一个模式,该模式被动态添加到地图上标记的信息窗口中

我现在尝试了几种方法,比如使用onclick、ng click和ui sref。onclick不起作用,因为它说我的函数没有定义。ng click未触发,并且用于使用$state.go('someState')-方法的ui sref也未触发

var createMarkerOnMap = function (param) {

        if (param.hasOwnProperty('type')) {
            var contentString = "<h5>" + 'Social-Media-Filter ID: '+ param.id + "</h5><hr color='#000000' noshade>X Ereignisse in diesem Filter  <br>" + param.keywords;
            var infowindow = new google.maps.InfoWindow({
                content: contentString +
                '<br><button id="detailsButtonFilter" ng-click="test()" class="btn btn-primary"><i class="fa fa-lg fa-eye"></i> Details</button>' +
                ' <button id= "editButtonFilter" ng-click="test()" class="btn btn-primary"><i class="fa fa-lg fa-cog"></i> Bearbeiten</button>'
            });

            // document.getElementById ("detailsButtonFilter").addEventListener ("click", bla, false);

            var marker = new google.maps.Marker({
                position: new google.maps.LatLng(param.latitude, param.longitude),
                title: param.keywords,
                icon: getSocialMediaIcon(param.type)
            });

            google.maps.event.addListener(marker, 'click', function () {
                infowindow.open($scope.map, marker);
            });

        } else {
            var contentString = "<h5>" + param.name + "</h5><hr color='#000000' noshade> Notfallwarnung Stufe " + param.warningLevel + " aktiv <br>";
            var infowindow = new google.maps.InfoWindow({
                content: contentString +
                '<br><button ng-click="test()" class="btn btn-primary"><i class="fa fa-lg fa-eye"></i> Details</button> ' +
                ' <button ng-click="test()" class="btn btn-primary"><i class="fa fa-lg fa-cog"></i> Bearbeiten</button>'
            });

            var marker = new google.maps.Marker({
                position: new google.maps.LatLng(param.latitude, param.longitude),
                title: param.name,
                icon: setPdIcon(param.warningLevel)
            });
            google.maps.event.addListener(marker, 'click', function () {
                infowindow.open($scope.map, marker);
            });
        }
        return marker;
    };
var createMarkerOnMap=函数(param){
if(param.hasOwnProperty('type')){
var contentString=“++”社交媒体过滤器ID:“+param.ID+”
X eReeignisse in diesem过滤器
”+param.keywords; var infowindow=new google.maps.infowindow({ 内容:contentString+ “
详细信息”+ “比尔贝滕” }); //document.getElementById(“detailsButtonFilter”).addEventListener(“单击”,bla,false); var marker=new google.maps.marker({ 位置:新google.maps.LatLng(参数纬度,参数经度), 标题:param.keywords, 图标:getSocialMediaIcon(参数类型) }); google.maps.event.addListener(标记,'click',函数(){ infowindow.open($scope.map,marker); }); }否则{ var contentString=“”+param.name+“
Notfallwarnung Stufe”+param.warningLevel+“aktiv
”; var infowindow=new google.maps.infowindow({ 内容:contentString+ “
详细信息”+ “比尔贝滕” }); var marker=new google.maps.marker({ 位置:新google.maps.LatLng(参数纬度,参数经度), 标题:param.name, 图标:setPdIcon(参数警告级别) }); google.maps.event.addListener(标记,'click',函数(){ infowindow.open($scope.map,marker); }); } 返回标记; };
嗯……我认为动态添加的HTML没有正确呈现,但我不知道在这种情况下如何处理它


问题似乎在于论点的顺序。事件处理程序必须是第一个这样的参数

google.maps.event.addListener('click', hereComesTargetEvent, function() {
  infowindow.open($scope.map, marker);
});
要使按钮在
google.maps.InfoWindow
中可单击,需要使用
$compile
服务编译
内容
属性:

var content = '<button ng-click="cityDetail(' + idx + ')" class="btn btn-primary"><i class="fa fa-lg fa-eye"></i> Details</button>';
var compiledContent = $compile(content)($scope)

google.maps.event.addListener(marker, 'click', function () {
    $scope.infowindow.setContent(compiledContent[0]);
    $scope.infowindow.open($scope.map, marker);
});


此侦听器仅用于单击我的标记并打开信息窗口。在此窗口中,您将看到另外两个按钮。用于显示详细信息和编辑实体属性。为了更好地理解,我将在我的初始帖子中添加一张图片。我的问题是这个窗口里面的按钮。效果很好。谢谢你节省了我的时间。也谢谢你发这个问题@亚历山大·奥尔兹曼。