在 NgMap 中显示和隐藏绘制控件 - 谷歌地图
Show and hide drawcontrols in NgMap - Google Maps
我想让用户单击一个按钮,在地图上显示绘制控件。添加圆圈、标记等后,绘制控件将再次隐藏。
我正在构建一个 Angular 应用程序,我正在使用 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 上调用,但控件没有隐藏?
检查 ng-map 的源代码,我发现缺少drawingControl
属性的观察者,因此在使用 Angular 绑定进行初始设置后无法更新它。
解决此问题的两种替代方法:
1)修补ng-map.js将以下代码添加到drawingManager
指令中:
attrs.$observe('drawingcontrol', function (newValue) {
drawingManager.setOptions({
drawingControl: (newValue=="true" ? true : false)
});
});
2)直接使用谷歌地图API,如此处所述
map.mapDrawingManager[0].setOptions({drawingControl:false/true})
检查我的 plunker 是否有选项 2:
http://plnkr.co/edit/KUCMVdgRZ3TsN9P0FlZR
PS:在上面的Plunker中,您还可以看到ng-map的修补版本(但是未使用,但测试为有效)。
相关文章:
- 音频控件在mouseover上显示,在mouseout上淡出
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何更改文本框控件的不透明度值
- 所有控件的组合框
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 在angularjs中创建自定义控件的推荐方法
- 自定义控件中的双向绑定在SAPUI5中不起作用
- 如何在ASP中为用户控件添加Javascript对象网
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 在HTML5画布上添加按钮和控件
- 隐藏HTML5视频控件
- 向ASP控件添加自定义事件
- 在 NgMap 中显示和隐藏绘制控件 - 谷歌地图
- 传单.js绘制控件不能在整个地图窗口区域上移动
- 如何在asp.net图像控件上绘制几何形状以创建图像映射
- 如何使用Bing Maps Ajax控件6.3绘制圆