Clair $portée sur déconnexion dans Angular js
Dans mon contrôleur, je suis de stocker des données comme $scope.$parent.dossierSummaries = data;
mais après la déconnexion et la connexion, l'application $scope.$parent.dossierSummaries
conserve le même vieux de données.
Je fais cela à déconnecter
.success( function( response, status ) {
if ( response.status > 0 ) {
var u = $rootScope.user.username;
$cookieStore.remove('myapp');
$rootScope.user = { username: '', role: 0 };
success(u);
}
else {
error(response.messages);
}
})
.error( function( response, status ) {
error(['There was an error logging you out.']);
});
OriginalL'auteur Prashobh | 2013-08-29
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas qu'il n'y a aucun moyen efficace pour y parvenir. N'importe quel objet (contrôleur, de la directive,de filtre ou comme une question de fait, tout objet js) peut contenir de référence à un autre objet (dans votre cas l'utilisateur), et on ne peut pas déterminer facilement qui sont tous de portefeuille de référence.
La référence seulement obtenir la libération si vous le faites, que ce soit explicitement ou lorsque l'objet titulaire de la référence est détruite.
Ce que vous pouvez essayer est
En supposant que certains objet sont le suivi de cet objet spécifique les données seront effacées maintenant.
OriginalL'auteur Chandermani
dans angularJS, à ne pas définir la variable directement à un contrôleur, mais vous devez le récupérer à partir d'un service à la place. Donc, chaque fois que vous chargez un contrôleur, vous devez écrire un
init()
fonction pour obtenir la valeur de ce modèle. Donc, chaque fois que vous avez les bonnes données à partir du serveur.Exemple de Code et docs : http://docs.angularjs.org/guide/dev_guide.services.creating_services
OriginalL'auteur nXqd
Une autre approche manuellement le suivi et le nettoyage des choses serait de
broadcast
une "déconnexion" de l'événement sur larootScope
(ou d'autres événements personnalisés). Puis écouter l'événement dans votre contrôleur ou dans votre service pour nettoyer les données.Diffusion:
Regarder pour un événement (dans un service, par exemple):
OriginalL'auteur checketts
si vous n'avez pas l'esprit un léger scintillement de l'écran lors de la déconnexion, vous pouvez actualiser la page à l'aide d'une méthode comme ceci:
ce serait effacer tous les
$scope
et$rootScope
variables, et dans mon cas a résolu le problème.OriginalL'auteur Hamid
Si vous voulez effacer le $scope, je pense que vous pouvez utiliser la méthode constructeur ou proto (prototype), qui est utilisé dans le constructeur. Je crois que vous pouvez faire pour réinitialiser le champ d'application à l'état initial. Si quelqu'un en sait plus sur ce sujet, n'hésitez pas à commenter.
OriginalL'auteur tomazahlin