在Google Maps infowindow中直播AngularJS内容

时间:2015-02-22 22:57:41

标签: angularjs google-maps

我正在尝试使用AngularJS填充Google Maps infoWindow,包括ng-include,ng-show和ng-click。我希望用户能够点击地图上的任何位置,并获得一个信息窗口,显示在那里找到的所有项目,并有他们可以对这些项目执行的操作。 用户第一次点击地图时,会设置infoWindow的内容,然后在短暂延迟后编译,以便谷歌地图创建infoWindow。

infoWindow.setContent(contentString);               
infoWindow.open(me.map,target);         
setTimeout(function(){
        $compile($('#infoWindow'))($scope);
        $scope.$digest();
}, 200);

这个窗口工作正常,该内容中的ng-show指令有效,因为我可以使用页面的其他部分来影响它们。如果第二次单击只是尝试重用窗口

infoWindow.open(me.map,marker);

我没有更改内容,但现在显示的所有花括号显示{{,对我来说,这意味着GM已将内容保存在某处,并在我调用{{1时'时从其副本中重新生成infoWindow }}

如果我再次调用opencompile,则所有infoWindow看起来都是正确的,但在场景后面调用digest指令的次数是第一个窗口的两倍(尽管两者都是使用在新点击位置找到的相同项目列表)。在第三次点击时,它比第一次调用它多三倍,依此类推。我在构建内容字符串时放入了一个跟踪器,这样每个窗口都会向ng-show调用的函数发送一个不同的数字,看来我的页面上有一个独立的infoWindows,它们都是循环的虽然ng-show每次点击并更改该列表中的项目。

由于不编译不起作用,并且重新编译不起作用,我唯一要做的就是追捕并消灭ghost infoWindows。但我不知道如何。

0 个答案:

没有答案