我剛剛開始Angular上週,並且我正努力從剛剛加載的模板訪問DOM。這裏是發生了什麼 -Angular - 從剛剛加載的模板訪問DOM元素
的index.html
<div class="template" ng-app="myApp" ng-controller="myController">
<div ng-include="template_url"></div>
<input type="button" value="Load Top" ng-click="loadTopTemplate()">
</div>
模板/的top.html
<ul>
<li ng-repeat="(key, myObjectItem) in myObject">
<span id="{{key}}">{{myObjectItem | uppercase}}</span>
</li>
</ul>
<span id="staticElement">Static Element</span>
app.js
var app = angular.module('myApp', []);
app.controller('myController', function($scope) {
$scope.myObject = {"item1": "one", "item2": "two", "item3": "three", "item4": "four", "item5": "five"};
$scope.loadTopTemplate = function() {
$scope.template_url = 'top.html';
}
$scope.$on('$includeContentLoaded', function() {
console.debug("template loaded");
console.debug("Static element text: " + document.getElementById("staticElement").innerHTML); //works
console.debug("Dynamic element text: " + document.getElementById("item5").innerHTML); //doesn't work
});
});
我無法從的top.html其獲取DOM加載以後使用ng-repeat
訪問動態元素。請讓我知道如何解決這個問題。謝謝!
Plunker - http://plnkr.co/edit/rRRRkJ20bm00yqslMtnS?p=preview
這是你的代碼的實際副本嗎?如果是的話,你會在事件監聽器的末尾丟失一個右括號。 $ scope。$ on('...',function(){...});除此之外,你的代碼剪裁對我沒有任何缺陷。 – PerfectPixel
對我也一樣。我認爲最好的情況是,你可以在你複製問題的地方創建一個小提琴。 –
@PerfectPixel沒有那不是我的實際代碼。我能夠加載模板並打印這個'console.debug(「模板加載」)' – skos