javascript - 在 NgMap - Google map 中显示和隐藏绘图控件

标签 javascript angularjs google-maps ng-map

我想让用户单击一个按钮,以在 map 上显示绘制控件。添加圆圈、标记等后,绘图控件将再次隐藏。

我正在构建一个 Angular 应用程序,并且正在使用 NgMap 指令 ( https://ngmap.github.io/ )

我的示例代码如下所示:

html:

<ng-map id="myMap">
    <drawing-manager 
        on-overlaycomplete="ctrl.onMapOverlayCompleted()"
                drawingControl="ctrl.showDrawControl">
        </drawing-manager>
</ng-map>

Controller :

vm.showDrawControl = true;
        NgMap.getMap({ id: 'myMap' }).then(function (map) {
            vm.onMapOverlayCompleted = function (event) {
                vm.showDrawControl = false;
                alert(vm.showDrawControl);
            }            
        });

在overlayComplete上调用函数,但控件没有隐藏?

最佳答案

检查ng-map的源代码,我发现drawingControl属性的观察者缺失,因此在使用Angular进行初始设置后无法更新绑定(bind)。

解决该问题的两种选择:

1) 修补 ng-map.js 将以下代码添加到 drawingManager directive :

    attrs.$observe('drawingcontrol', function (newValue) {
        drawingManager.setOptions({
          drawingControl: (newValue=="true" ? true : false)
        });
    });

2) 直接使用 Google map API,如所述 here

    map.mapDrawingManager[0].setOptions({drawingControl:false/true})

检查我的插件是否有选项 2:

http://plnkr.co/edit/KUCMVdgRZ3TsN9P0FlZR

P.S.:在上面的 Plunker 中,您还可以看到 ng-map 的修补版本(但是未使用,但测试正常)。

关于javascript - 在 NgMap - Google map 中显示和隐藏绘图控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35576754/

相关文章:

javascript - 访问网页后尝试查找任何元素时 Watir 超时

angularjs - 试图了解如何使用 Angular-mock

google-maps - 通过谷歌地图计算距离和持续时间

php - CakePHP 和 GoogleMapsHelper : How do I load markers from my DB?

javascript - 谷歌地图获取geojson数据

javascript - 如何使用 Javascript 在 Canvas 上绘图

javascript - HTML5和JavaScript中如何返回到我刚才点击的位置?

javascript - 点击似乎被模糊阻挡

javascript - 在 Angular.js 中动态加载模板(部分)

javascript - 表单提交上的 Safari 动画