Comment déclencher une méthode lorsque Angulaire est fait en ajoutant de la portée des mises à jour du DOM?

Je suis à la recherche d'un moyen d'exécuter du code lorsqu'après je ajouter des modifications à un $portée variable, dans ce cas, $champ d'application.résultats. J'ai besoin de le faire afin d'appeler un code existant qui nécessite les éléments dans le DOM avant de pouvoir l'exécuter.

Mon vrai code est le déclenchement d'un appel AJAX, et la mise à jour d'un champ variable afin de mettre à jour l'interface utilisateur. J'ai donc actuellement mon code est en cours d'exécution immédiatement après que je l'ai pousser à la portée, mais l'héritage de code est un échec parce que les éléments du dom ne sont pas encore disponibles.

Je pourrais ajouter un vilain retard avec setTimeout(), mais cela ne garantit pas que le DOM est vraiment prêt.

Ma question est, est-il possible que je peux lier à un "rendu" comme événement?

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']);

Lien pour code simulé: http://jsfiddle.net/acolchado/BhApF/5/

Merci d'Avance!

  • SI vous souhaitez utiliser setTimeout() pourquoi n'essayez-vous pas de la fonction setInterval() la méthode? Dans angulaire façon, est-il possible que vous pouvez utiliser la montre fonctionnalités dans votre code?
  • Je veux éviter d'utiliser setTimeout. J'ai trouvé ce violon qui prétend faire ce que je veux, mais ça ne fonctionne pas. La clé semble être $evalAsync, donc je dois trouver un moyen de le faire fonctionner. J'espère que je suis sur le bon chemin.
  • Je suis confronté à un problème similaire, et mes pensées sont en cours d'exécution le long de la lignes de l'utilisation d'une promesse de "faire quelque chose de génial", définissant un $regarder sur la portée de la variable qui va (enfin) être mis à jour et la résolution de la promesse dans la tranche de la montre. Je n'ai pas essayé encore: il suffit d'entrer dans Angulaire. Je serais intéressé de voir si vous pouvez le faire fonctionner!
InformationsquelleAutor acolchado | 2013-06-20