Istnieją dwa sposoby, aby to zrobić:
1 ng-startowych
function controller($scope) {
$scope.items = [{id: 1, name: 'one'}, {id: 2, name: 'two'}];
$scope.initRepeaterItem(index, item) {
console.log('new repeater item at index '+index+':', item);
}
}
<ul>
<li ng-repeat="item in items" ng-init="initRepeaterItem($index, item)"></li>
</ul>
2 MutationObservernieco bardziej skomplikowane
to zrobić wewnątrz dyrektywy , na elemencie, którego rodzic otrzymuje nowe dziecko en (<ul>
w tym przypadku)
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// you get notified about DOM mutations here
// check mutation.type if it was an insertion
console.log(mutation.target.nodeName, mutation.type, mutation);
});
});
var config = {childList: true, attributes: false, characterData: false,
subtree: false, attributeOldValue: false, characterDataOldValue: false};
observer.observe(element[0], config);
Demo http://plnkr.co/h6kTtq
Documentation https://developer.mozilla.org/en/docs/Web/API/MutationObserver
Browser support http://caniuse.com/mutationobserver
chodzi o manipulację DOM w sterowniku, to [mówi tutaj] (https://groups.google.com/forum/?fromgroups=#!topic/angular/ u52B5bVzdqs), że nie powinieneś tego robić w ogóle. Powinien pójść w dyrektywie. Dlaczego to nie działa, nie wiem, ale to prawdopodobnie dlatego, że kątowy nadal działa w tym momencie. – Narretz
Sądzę, że będziesz w stanie uzyskać lepsze rozwiązanie, jeśli możesz wyjaśnić, dlaczego lub z jakiego powodu próbujesz uzyskać dostęp do nowego elementu dom. Jeśli potrafisz wyjaśnić, że prawdopodobnie dostaniesz odpowiedź, aby rozwiązać twój problem w sposób kątowy. – ganaraj