2015-02-11 94 views
-1

控制器代碼:儘快角的javascript:無法訪問DOM元素

$scope.items = []; 
$scope.items = [{'name': 'name x', 'id': 'xyz'}, 
            {'name': 'name y', 'id': 'uqh'}]; 

console.log(document.getElementById('xyz')+'<--- Element is created'); 

查看

<div ng-repeat="item in items"> 
    <div id="{{item.id}}"/> 
</div> 

所以在這裏,我已經創建的div動態,我想提請每個div中的圖表。但我無法訪問它。

控制檯顯示爲空。我明白這裏出了什麼問題。但有人建議我在這種情況下正確的方式。

我知道的另一種方法是像這樣綁定函數調用,但隨後會調用多次。所以我不能以這種方式繼續前進。

<div ng-repeat="item in items"> 
    <div ng-bind="drawInElement(item.id)" id="{{item.id}}"/> 
</div> 
+0

你到底想幹什麼?您不應該與控制器中的dom進行交互。 – 2015-02-11 10:02:05

+0

請給您的問題添加一些更多的背景請 – swazza85 2015-02-11 10:02:40

+0

好的。我想動態添加一個畫布元素,然後繪製。 – 2015-02-11 10:03:45

回答

2

好,我只想建議創建這樣的指令:

<div ng-repeat="item in items"> 
    <div draw-my-chart="{{item.id}}"/> 
</div> 

然後在您的JS:

angular.directive('drawMyChart', function() { 
    return { 
    link: function(scope, element, attrs) { 
     // access your element here ... 
    } 
    }; 
})