[AngularJS]显示和隐藏在 NgMap-Google Maps drawcontrols

发布时间: 2017/4/16 20:49:27
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想让用户点击一个按钮,用于显示在地图上的绘制控件。一旦添加了一圈,标记等,绘制控件是隐藏起来了。

我建立一个角的应用程序和我使用 NgMap 指令 (https://ngmap.github.io/)

我的示例代码如下所示︰

html:

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

控制器︰

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

在 overlayComplete,调用该函数,但不是隐藏的控件?

解决方法 1:

检查源代码的 ng-map 我见过,对观察员 drawingControl 属性是缺掉的所以它不能使用角绑定的初始安装后更新。

要解决此问题的两种选择︰

1) 修补吴 map.js 添加到下面的代码 drawingManager 指令:

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

2) 直接使用Google Maps API 作为陈述在这里

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

检查我的呆瓜备选案文 2:

http://plnkr.co/edit/KUCMVdgRZ3TsN9P0FlZR

P.S.︰ 在呆瓜上面,你可以看到一个补丁的版本的 ng-map (但是不使用,但测试作为工作)。

官方微信
官方QQ群
31647020