无法通过带有角度的id找到元素

时间:2016-11-28 17:39:22

标签: javascript angularjs

我正在尝试使用它的id从DOM获取元素。但我不能让这个工作。

使用AngularJs生成id,这是我的元素:

<map class="map-container" id="{{ 'map' + poleId }}" ng-attr-id="{{ 'map' + poleId }}" map-waiters="waiters" map-pole-id="1">
</map>

我创建了一个启动地图的指令(使用Google Maps API)

angular.module('myapp.modules.map', [])

.directive('map', function() {
    return {
        restrict: 'E',
        scope: {mapWaiters: '@',
                mapPoleId: '@'},
        link: function(scope, element, attrs) {
            var poleCenter = new google.maps.LatLng(49.034758, 2.075081);
            var mapOptions = {
              center: poleCenter,
              zoom: 16,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(angular.element("#" + attrs.id), mapOptions);
            scope.map = map;
        }
    }
});

我的问题是angular.element("#" + attrs.id)在使用动态ID时总是不返回任何元素。我试图显示id字符串,它们匹配。当我使用静态id时,它可以工作。

我也尝试使用document.getElementById()window.getElementById(),但他们找不到我的元素。

非常感谢任何帮助。

0 个答案:

没有答案