Javascript 角形小叶标记点击

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

我使用带有角度的传单,并希望在弹出的消息中单击一个按钮。我知道我必须编译HTML,但在我的例子中我无法让它工作,因为我没有找到一个json请求的例子

欢迎任何提示

$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);
        });