我正在使用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
});
任何人都知道我做错了什么或知道如何在点击标记消息时调用函数?
答案 0 :(得分: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; }
});
答案 1 :(得分:0)
你遇到了大麻烦:P。使新的角度代码开箱即用的唯一方法是使用$ 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);
}
}
}]);
干杯