我試圖獲得在ng-repeat
中創建的<div>
,以便我可以在由第三方庫生成的內容中添加內容。獲取JavaScript引用在ng-repeat中創建的元素
嘗試1:
<div ng-init="init()">
<div ng-repeat="item in items">
<div id="{{ item.id }}"></div>
</div>
</div>
$scope.init = function() {
for (var i in items) {
var element = document.getElementById(items[i].id);
generateInnerHtml(element);
}
};
嘗試2:
<div ng-init="init()">
<div ng-repeat="item in items">
<div id="{{ item.id }}" ng-init="addContent(item.id)"></div>
</div>
</div>
$scope.addContent = function(id) {
var element = document.getElementById(id);
generateInnerHtml(element);
};
嘗試3:
<div ng-init="init()">
<div ng-repeat="item in items">
<div id="{{ item.id }}" ng-init="addContent(this)"></div>
</div>
</div>
$scope.addContent = function(element) {
generateInnerHtml(element);
};
對於所有三次嘗試,element
始終爲空或未定義。怎麼了?
保持在控制器到DOM元素的引用可能會落入角度反模式的保護下。爲什麼不對ng-repeat中的元素進行指示,並且在指令'link'函數中執行所需的DOM級別操作/引用? –