我试图通过$编译内容并设置为infowindow来实现动态地图(Google Map)Infowindow。
我希望infowindow显示依赖于悬停/点击标记的数据,用户可以点击其中的某个按钮来调用$ scope的功能。
除了$ scope函数之外,所有数据绑定都可以正常工作(所有值都有),当我点击按钮时没有触发任何内容。
以下是我的一些代码:
map.directive.js
///////
function linkFn(scope, element, attrs) {
scope.mapPane = new MapPane();
scope.actionButton = function() {
alert('it should trigger this');
}
function MapPane() {
var self = this;
self.infoWindow = new google.maps.InfoWindow({..})
self.openInfoWindow = function() {
$timeout(function(){
var content = getContentByMarkerType();
var el = $compile(content)(scope);
self.infoWindow.setContent( el );
self.infoWindow.open( map, latlngObj )
}
}
}
}
对于infowindow模板, 我使用ng-bind作为数据值 和ng-click =" actionButton()"用于调用函数,但单击按钮时没有任何反应。
我做错了什么或忘了什么?
谢谢。
答案 0 :(得分:0)
你试过这个$ compile模式吗?
var compiled = $compile(template);
var elm = complied(scope);
element.append(elm);
这样可以完全创建模板并延迟添加范围值,直到它为止。