Javascript 函数未在html onclick和ng click中定义,并且ui sref未触发
我想通过点击按钮打开一个模式,该模式被动态添加到地图上标记的信息窗口中 我现在尝试了几种方法,比如使用onclick、ng click和ui sref。onclick不起作用,因为它说我的函数没有定义。ng click未触发,并且用于使用$state.go('someState')-方法的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')) {
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);
});
此侦听器仅用于单击我的标记并打开信息窗口。在此窗口中,您将看到另外两个按钮。用于显示详细信息和编辑实体属性。为了更好地理解,我将在我的初始帖子中添加一张图片。我的问题是这个窗口里面的按钮。效果很好。谢谢你节省了我的时间。也谢谢你发这个问题@亚历山大·奥尔兹曼。