Javascript AngularJS ng click函数在$compile map';s信息窗口内容
我试图通过$compile内容并设置为Infowindow来实现动态地图(googlemap)的Infowindow 我希望infowindow显示依赖于悬停/单击标记的数据,用户可以单击其中的某个按钮来调用$scope的函数。Javascript AngularJS ng click函数在$compile map';s信息窗口内容,javascript,angularjs,google-maps,Javascript,Angularjs,Google Maps,我试图通过$compile内容并设置为Infowindow来实现动态地图(googlemap)的Infowindow 我希望infowindow显示依赖于悬停/单击标记的数据,用户可以单击其中的某个按钮来调用$scope的函数。 除了$scope的函数外,所有数据绑定都可以正常工作(所有值都有),当我单击按钮时,不会触发任何内容 以下是我的一些代码: map.directive.js /////// function linkFn(scope, element, attrs) { sc
除了$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()”调用函数,但单击按钮时不会发生任何事情
我是做错了什么还是忘记了什么
多谢各位 您尝试过这个$compile模式吗
var compiled = $compile(template);
var elm = complied(scope);
element.append(elm);
这样可以完全创建模板,并延迟范围值的添加,直到完成为止
MapPane
应该是linkFn
中的一个函数吗?因为linkFn
没有关闭}
,在MapPane
之后和之前都没有关闭。我在帖子中漏掉了一个{,但实际上它在MapPane之后(我会编辑)。