Wie kann eine Methode ausgelöst werden, wenn Angular fertig ist und dem DOM Bereichsaktualisierungen hinzugefügt wurden?

Ich suche nach einer Möglichkeit, Code auszuführen, nachdem ich Änderungen an einer $ scope-Variablen vorgenommen habe, in diesem Fall $ scope.results. Ich muss dies tun, um älteren Code aufzurufen, für den die Elemente im DOM vorhanden sein müssen, bevor sie ausgeführt werden können.

Mein realer Code löst einen AJAX-Aufruf aus und aktualisiert eine Bereichsvariable, um die Benutzeroberfläche zu aktualisieren. Daher wird mein Code derzeit sofort ausgeführt, nachdem ich auf den Gültigkeitsbereich gewechselt bin. Der alte Code schlägt jedoch fehl, da die dom-Elemente noch nicht verfügbar sind.

Ich könnte mit setTimeout () eine hässliche Verzögerung hinzufügen, aber das garantiert nicht, dass das DOM wirklich bereit ist.

Meine Frage ist, gibt es Möglichkeiten, wie ich mich an ein "gerendertes" Ereignis binden kann?

var myApp = angular.module('myApp', []);

myApp.controller("myController", ['$scope', function($scope){
    var resultsToLoad = [{id: 1, name: "one"},{id: 2, name: "two"},{id: 3, name: "three"}];
    $scope.results = [];

    $scope.loadResults = function(){
        for(var i=0; i < resultsToLoad.length; i++){
            $scope.results.push(resultsToLoad[i]);
        }
    }

    function doneAddingToDom(){
        // do something awesome like trigger a service call to log
    }
}]);
angular.bootstrap(document, ['myApp']);

Link zum simulierten Code:http://jsfiddle.net/acolchado/BhApF/5/

Danke im Voraus!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage