Angular不会在GMap对象内部进行更新

Angular does not update inside a GMap object

本文关键字:内部 更新 对象 GMap Angular      更新时间:2023-09-26

我刚刚开始使用Angular,我非常喜欢它,我正在做一个运行在Angular上的谷歌地图应用程序,在谷歌地图对象中更新我的模板时遇到了问题,下面是代码:

 Map.addMarker = function(objMarker){
        var overviewBox = 'some random text here';
        var GmapLatLng = new google.maps.LatLng(objMarker.lat, objMarker.lng);
        var GmapInfoWindow = new google.maps.InfoWindow({
            content: overviewBox,
            maxWidth: 400
        });
        var marker = new google.maps.Marker({
            position    : GmapLatLng,
            map         : MapApp.Gmap,
            icon        : '/images/nice-custom-marker.png',
            title       : objMarker.title,
            cleanTitle  : objMarker.cleanTitle
        });
        $scope.marker.title = "Hello from the add marker";
        google.maps.event.addListener(marker, 'click', function(){
            GmapInfoWindow.open(MapApp.Gmap, marker);
            Map.getMarker(marker.cleanTitle);
            $scope.marker.title = "Hello from the add marker listener";
        });
    }

我可以替换我的{{title}}上的模板与"你好从添加标记",但我不能做相同的点击监听器"你好从添加标记监听器"当我控制台。log($scope)我确实可以访问$scope对象虽然,我在这里很困惑,有人知道什么可能会出错,我如何能围绕它工作?

提前谢谢你。

编辑:刚刚尝试使用Jquery

$('#contentView>h1').text("Hello from the add listener");
$scope.marker.title = "Hello from the add listener";

,显然它可以工作,但我真的想用Angular代替:(

我不得不在设置变量后使用$scope.$apply();,要了解更深入的解释,你可以阅读这个Angular .$apply