我正在使用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
});有人知道我做错了什么吗?或者知道如何在点击标记消息时调用函数?
发布于 2015-01-14 11:12:39
您现在可以在弹出消息中轻松使用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; }
});发布于 2014-05-25 13:12:26
你有大麻烦了: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);
}
}
}]);干杯
https://stackoverflow.com/questions/23851259
复制相似问题