Truc 23 : Utiliser $rootScope pour créer des variables globales inter Controlleurs.

Introduction


Pour partager des variables entre controleurs, on utilise un service ou une factory.

Pour écrire des données dans une factory, on utilise une fonction « setter ».

Mais, parfois, si on a pas le temps, on peut créer des variables globales directement à l’aide de $rootScope , de cette façon on a accès à la variable dans tous les contrôleurs.

Comment faire?


Etape 1 :

Intégrer $rootScope au controlleurs concernés comme cela :

.controller(‘loginCtrl’, function ($scope,ServiceData,$http,$rootScope){

};

Etape 2 :

Créer une variable globale dans le premier controleur, par exemple :

$rootScope.nom = { value:’durand’};

Etape 3:

Ecrire dans la vue Html qui dépends d’un second controleur une réfèrence à la variable globale, et ça marche, le 2 way binding mets à jour la variable globale, alors que normalement, les 2 controleurs ne partagent pas les variables !

<input type= »text » ng-model= »nom.value »>

Publicités