首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angular-leaflet-directive中使标记消息/标签可点击

在angular-leaflet-directive中使标记消息/标签可点击
EN

Stack Overflow用户
提问于 2014-05-25 09:44:42
回答 2查看 1.8K关注 0票数 1

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

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

有人知道我做错了什么吗?或者知道如何在点击标记消息时调用函数?

EN

回答 2

Stack Overflow用户

发布于 2015-01-14 11:12:39

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

代码语言:javascript
复制
$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; }
});
票数 2
EN

Stack Overflow用户

发布于 2014-05-25 13:12:26

你有大麻烦了:P.让新的angular代码开箱即用的唯一方法就是使用$compile服务。我不想无礼,但如果我处在你的位置,我会尝试寻找另一种方法,比如使用ng-repeat并改变你的逻辑。

无论如何,编译服务的工作原理是这样的,但至少就我个人而言,我会尝试寻找不同的解决方案:

代码语言:javascript
复制
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);
      }
    }
  }]);

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23851259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档