Comprendre les scopes de AngularJS

Actualisé le 27 avril 2014 - ,

AngularJs est un framework vraiment innovant, mais il y a quelques subtilités que ne sont pas toujours évidentes.

Quel différence entre $rootScope et $scope ?

Concrètement le $scope hérite de $rootScope, ce qui signifie que si vous imbriquez plusieurs niveaux de controller, vous pourrez accéder à des variables ou fonctions présentes dans le $rootScope depuis des controllers enfants.

Comment utiliser le $scope.apply() ?

Dans angularjs les variables et fonctions sont encapsulées dans un scope (avec une notion d’héritage comme vu précédemment), donc à partir du moment où vous modifiez des données, le scope est mis à jour et tout est recompilé. Mais si admettons vous souhaitez faire en sorte qu’une variable change depuis une action extérieure au scope, il faudra alors informer angular que le scope a été modifié. C’est là qu’intervient le $scope.apply qui vous permettra de forcer la mise à jour du scope avec les nouvelles données que vous lui passez.

Quelle différence en $scope.emit et $scope.broadcast ?

En fait $scope.emit émet un événement en remonttant les scopes, alors que $scope.broadcast émet un événement en le propageant à tous ses enfants.

Comment accéder au scope depuis un élément du dom ?

Si admettons vous souhaitez récupérer le scope depuis un élément du dom que vous venez de modifier vous pouvez utiliser la fonction suivante.

 

Commentaires

Laisser un commentaire