高德地图在angularJS中的InfoWindow动态添加按钮
2016-12-23 22:16
260 查看
前两天遇到一个问题,发现高德地图在angularJS中的InfoWindow动态添加按钮,按钮无效问题。
一开始以为是高德地图开放的权限问题,后来今天有空测试了一下,发现不是这个问题,点击无反应。是什么问题,要么点击函数没有加载,要么是点击事件没有绑定成功,因为angularjs是在第一个加载页面的时候一次性把整个页面生成,所以肯定是动态加载dom没有绑定点击事件成功的问题了,后来发现angularJS的$compile 服务了,他就是在动态添加dom的时候把dom编译好添加,然后编译好了,发现appendChild() 提示不是一个 NODE 类型 后来打印了一下,发现是一个数组类型的,而第一个元素就是我们想要的元素内容,那么就很简单了 ,取数组的第0个元素就好了,点击 弹出asd 成功了。。。angularJS半吊子水平很危险。。
一开始以为是高德地图开放的权限问题,后来今天有空测试了一下,发现不是这个问题,点击无反应。是什么问题,要么点击函数没有加载,要么是点击事件没有绑定成功,因为angularjs是在第一个加载页面的时候一次性把整个页面生成,所以肯定是动态加载dom没有绑定点击事件成功的问题了,后来发现angularJS的$compile 服务了,他就是在动态添加dom的时候把dom编译好添加,然后编译好了,发现appendChild() 提示不是一个 NODE 类型 后来打印了一下,发现是一个数组类型的,而第一个元素就是我们想要的元素内容,那么就很简单了 ,取数组的第0个元素就好了,点击 弹出asd 成功了。。。angularJS半吊子水平很危险。。
$scope.asd =function() { alert("asd") } function openInfo() { //构建信息窗体中显示的内容 var html="<button ng-click='asd()'>asdasd</button>"; var template = angular.element(html); //编译模板 var Element = $compile(template)($scope); infoWindow3 = new AMap.InfoWindow({ content: Element[0] //使用默认信息窗体框样式,显示信息内容 }); infoWindow3.open(map, map.getCenter()); } openInfo();
相关文章推荐
- 高德地图显示在fragment中并添加按钮点击事件
- 高德地图显示在fragment中并添加按钮点击事件
- 动态添加附件上传按钮
- 在Repeater中动态添加服务器端(按钮)控件
- jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
- VC动态创建工具栏及工具栏上的按钮及为按钮添加消息响应函数
- 点击按钮动态添加新的一行(添加文本框)
- ATL ActiveX控件中用WTL::CButton动态添加按钮代码步骤
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭) 【转载】
- ListView 中添加按钮,动态删除添加ItemView的操作
- gridview动态添加按钮
- 如何在代码中动态添加按钮控件
- 精通Flex 3.0――4.2.3 动态添加按钮——SimpleButton类
- jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
- 给动态创建的按钮添加事件
- Enter键代替Tab键的功能;为按钮添加消息框confirm(),alert();动态生成表格
- dorado上动态添加按钮和按钮绑定dataset
- 关于ExtJS的工具栏动态添加按钮(从后台数据库读取信息)
- Jquery实现动态添加按钮