1

我正在使用 angular-leaflet-directive 并试图使我的标记消息可点击。当我在标记消息中使用 html 时,html 会正确呈现,但 ng-click 不起作用。这就是我所拥有的。

 $scope.map.markers.push({
    lat: lat,
    lng: lng,
    message: '<span ng-click="openView()">' + data.results[i].locationName + '</span>',
    draggable: false
});

任何人都知道我做错了什么或知道单击标记消息时如何调用函数?

4

2 回答 2

2

您现在可以在弹出消息中轻松使用 Angular 模板:

$scope.openView = function() { ... };

$scope.map.markers.push({
    lat: lat,
    lng: lng,
    message: '<span ng-click="openView()">' + data.results[i].locationName + '</span>',
    getMessageScope: function() {return $scope; }
});
于 2015-01-14T03:12:38.833 回答
0

你遇到了大麻烦:P。使新的 Angular 代码开箱即用的唯一方法是使用 $compile 服务。我并不是要粗鲁,但如果我在你的位置,我会尝试找到另一种方法,比如使用 ng-repeat 并改变你的逻辑。

无论如何,编译服务的工作方式有点像这样,但至少我个人会尝试找到不同的解决方案:

angular.module('sampleApp', [])
  .directive('howCompileWorks', ['$compile', function($compile){
    return {
      template: '',
      restrict: 'A',
      link: function (scope, element, attr) {
        scope.shout = function(){
          alert("I SAID HELLO!!");
        }
        element.html('<span ng-click="shout()">Hello yo!</span>');

        $compile(element.contents())(scope);
      }
    }
  }]);

干杯

于 2014-05-25T05:12:25.673 回答