Javascript AngularJS ng click函数在$compile map';s信息窗口内容

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

我试图通过$compile内容并设置为Infowindow来实现动态地图(googlemap)的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()”调用函数,但单击按钮时不会发生任何事情

我是做错了什么还是忘记了什么


多谢各位

您尝试过这个$compile模式吗

var compiled = $compile(template);
var elm = complied(scope);
element.append(elm);

这样可以完全创建模板,并延迟范围值的添加,直到完成为止

MapPane
应该是
linkFn
中的一个函数吗?因为
linkFn
没有关闭
}
,在
MapPane
之后和之前都没有关闭。我在帖子中漏掉了一个{,但实际上它在MapPane之后(我会编辑)。