Javascript 角形小叶标记点击
我使用带有角度的传单,并希望在弹出的消息中单击一个按钮。我知道我必须编译HTML,但在我的例子中我无法让它工作,因为我没有找到一个json请求的例子 欢迎任何提示Javascript 角形小叶标记点击,javascript,angularjs,leaflet,marker,Javascript,Angularjs,Leaflet,Marker,我使用带有角度的传单,并希望在弹出的消息中单击一个按钮。我知道我必须编译HTML,但在我的例子中我无法让它工作,因为我没有找到一个json请求的例子 欢迎任何提示 $http.get(searchterm).then(function(articlesResponse) { $scope.geonamesorte = articlesResponse.data; var meineMarker = {}; for ( var i = 0; i
$http.get(searchterm).then(function(articlesResponse) {
$scope.geonamesorte = articlesResponse.data;
var meineMarker = {};
for ( var i = 0; i < $scope.geonamesorte.length; i++) {
var ortObjektausListe = $scope.geonamesorte[i];
var myobjectname = ortObjektausListe.name.replace(/[^a-zA-Z0-9]/g,'_');
ortlat = parseFloat(ortObjektausListe.lat);
ortlng = parseFloat(ortObjektausListe.lng);
meineMarker[myobjectname+i] = {
lat: ortlat,
lng: ortlng,
message: "<span><a href='' ng-click='dosomething()''>info</a></span>",
focus: false,
draggable: false
};
}
// Marker on map
angular.extend($scope, {
markers: meineMarker,
defaults:{
tileLayer:"http://tile.stamen.com/toner-lite/{z}/{x}/{y}.png"
}
});
});
$http.get(searchterm).then(函数(articlesResponse){
$scope.geonasorte=articlesResponse.data;
var meineMarker={};
对于(变量i=0;i<$scope.geonasorte.length;i++){
var ortObjektausListe=$scope.geonamesorte[i];
var myobjectname=ortObjektausListe.name.replace(/[^a-zA-Z0-9]/g,“"”);
ortlat=parseFloat(ortObjektausListe.lat);
ortlng=parseFloat(ortObjektausListe.lng);
meineMarker[myobjectname+i]={
拉特:奥拉特,
液化天然气:奥特液化天然气,
消息:“”,
焦点:错误,
可拖动:错误
};
}
//地图上的标记
角度。扩大范围{
马克:梅内马克,
默认值:{
tileLayer:“http://tile.stamen.com/toner-lite/{z} /{x}/{y}.png“
}
});
});
在控制器中包含$compile服务,然后写入:
meineMarker[myobjectname+i] = {
lat: ortlat,
lng: ortlng,
message: $compile("<span><a href='' ng-click='dosomething()''>info</a></span>")($scope),
focus: false,
draggable: false
};
meineMarker[myobjectname+i]={
拉特:奥拉特,
液化天然气:奥特液化天然气,
消息:$compile(“”)($scope),
焦点:错误,
可拖动:错误
};
dosomething()必须在当前范围内定义确定,在此处找到解决方案: 但对它做了一点修改:
var myobjectname = 'meinort';
var meineMarker = {};
meineMarker[myobjectname] = {
lat: 0,
lng: 0,
name: 'testname',
message: "<span><a href='' ng-click='dosomething()'>info</a></span>",
focus: false,
draggable: false
};
var myobjectname='meinort';
var meineMarker={};
meineMarker[myobjectname]={
纬度:0,
液化天然气:0,
名称:“testname”,
消息:“”,
焦点:错误,
可拖动:错误
};
$scope.$on('folicateDirectiveMarker.click',函数(e,args){
//Args将包含标记名和其他相关信息
console.log(args);
var markerName=args.floapEvent.target.options.name;//必须在上面设置
var$container=$(args.传单事件.目标._popup._container).find('.传单popup-content');
$container.empty();
var html=“I am”+markerName+”“+args.mopleEvent.target.\u popup.\u content+”“,
linkFunction=$compile(angular.element(html)),
linkedDOM=linkFunction($scope);
$container.append(linkedDOM);
});
您的问题是什么?不幸的是,浏览器挂起,我收到以下错误:[$rootScope:infdig]10个digest()迭代。流产!我有这个控制器:mytestapp.controller('KarteCtrl',['$scope','$log','$http','$compile','FloapeData','FloapeEvents','FloapeBoundShellers',function('scope,$log,$http,$compile,FloapeData,FloapeBoundShellers,FloapeEvents){
$scope.$on('leafletDirectiveMarker.click', function(e, args) {
// Args will contain the marker name and other relevant information
console.log(args);
var markerName = args.leafletEvent.target.options.name; //has to be set above
var $container = $(args.leafletEvent.target._popup._container).find('.leaflet-popup- content');
$container.empty();
var html = "<p> I am "+markerName +" " + args.leafletEvent.target._popup._content + "</p>",
linkFunction = $compile(angular.element(html)),
linkedDOM = linkFunction($scope);
$container.append(linkedDOM);
});