AngularJS $regarder la racine de portée de variable pour les changements
J'ai le texte suivant $rootScope variable que j'utilise pour enregistrer la session courante de l'utilisateur le niveau de privilège, puis-je accéder à cette variable à partir d'autres contrôleurs. Est il possible que je peux regarder la rootScope variable des modifications dans le but de mettre à jour les contrôleurs de variables spécifiques avec les modifications à la racine de la portée de la variable? Ci-dessous c'est le code que j'utilise jusqu'à présent, quelqu'un peut s'il vous plaît dites-moi ce que je fais de mal et comment le résoudre? Grâce
Dans app.js en vertu de l' .exécuter:
$rootScope.uPLevel = 0;
.contrôleur de
$scope.$watch($rootScope.uPLevel, function() {
$scope.userPLevel = $rootScope.uPLevel;
}, true);
Vous devez vous connecter pour publier un commentaire.
Le premier paramètre à
$watch
devrait être une chaîne de caractères ou une fonction (docs). À droite vous êtes maintenant en lui passant la valeur de$rootScope.uPLevel
sur l'initialisation du contrôleur.Deux sidenotes:
$rootScope
.uPLevel
est seulement un entier (comme ton exemple), alors vous n'avez pas besoin de passertrue
en tant que troisième paramètre - c'est uniquement pour les tableaux et les objets. Si vous ne souhaitez regarder une collection, alors je vous suggérons d'utiliser$watchCollection
à la place.$rootScope
pour les mêmes raisons, on ne doit pas attacher beaucoup de variables àwindow
. Quelque chose à penser. N'oubliez pas de upvote!Je recommande de regarder $rootScope variables comme ça:
De cette façon, Lorsque la directive actuelle/contrôleur est détruit. Il efface le regarder ainsi. Dans $rootScope.$le boîtier de montre, la montre reste éternellement.