$scope vs $rootScope

Pour réaliser une application angularjs, il est très important de comprendre les différences entre $scope et $rootScope. Cela permettra par la suite de mieux comprendre la gestion d´événement.

$rootScope

le $rootScope comme son nom l’indique fait référence à la racine. En effet, il y en un seul par application. Il va nous permettre de pouvoir transmettre des variables et événements entre nos différents controllers.

$scope

Le $scope quand à lui est instancié pour chaque controller. Il va permettre de communiquer avec les vues et directives filles.

Pour mieux comprendre, il suffit d’observer ce schéma

angularjsscopes

Du coup si je dois communiquer d’un controller à un autre, je vais devoir utiliser le $rootScope. En revanche si je souhaite dialoguer avec les enfants d’un controller je vais plutôt utiliser le $scope.

Attention à ne pas trop utiliser le $rootScope pour stocker des éléments au risque d’alourdir votre application.

Je vais finir cette article par la gestion des événements, cela permettra de comprendre l’utilisation que l’on peut avoir du $rootScope.

A noter qu’ici j’ai injecté le $scope dans mes controllers. C’est une pratique à éviter. On préférera exposer les méthode du controller via this.