高德地图在angularJS中的InfoWindow动态添加按钮

前端之家收集整理的这篇文章主要介绍了高德地图在angularJS中的InfoWindow动态添加按钮前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前两天遇到一个问题,发现高德地图在angularJS中的InfoWindow动态添加按钮,按钮无效问题。
一开始以为是高德地图开放的权限问题,后来今天有空测试了一下,发现不是这个问题,点击无反应。是什么问题,要么点击函数没有加载,要么是点击事件没有绑定成功,因为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();
原文链接:https://www.f2er.com/angularjs/148379.html

猜你在找的Angularjs相关文章