Comment puis-je surveiller les changements de localStorage dans Angular2?
J'ai été à essayer de comprendre comment obtenir un menu d'apparaître et de disparaître étant connecté dans un post précédent. Mais je pense que le mieux et éventuellement plus facile question pourrait être, comment puis-je regarder pour que les modifications localstorage?
Je suis en utilisant json web des jetons dans les locaux de stockage pour mes d'authentification, j'aimerais regarder pour un changement de localStorage et puis re-mise à jour de mon point de vue sur de nouvelles informations.
J'ai mis mon localStorage avec cette
localStorage.setItem('jwt', my_token);
Les choses que je voudrais faire est de vérifier si j'ai un jeton, si je n'ai pas rien ne se passe, mais quand il y a un changement de déclencher un événement. J'aimerais surtout si je ne pouvais le regarder pendant un certain événement nommé comme localStorage.getItem('jwt').
Merci!
EDIT:
Gunter m'a orienté dans la bonne direction, mais juste au cas où quelqu'un est encore assez confus par cela, voici une plunker vous montrer comment le faire.
http://plnkr.co/edit/TiUasGdutCsll1nI6USC?p=preview
source d'informationauteur Morgan G
Vous devez vous connecter pour publier un commentaire.
La clé, c'est d'utiliser
window.addEventListener("storage",
. Tandis que la bibliothèque sans doute est-il le "droit" de façon angulaire, voici une version "light" j'ai mis en place, à l'aide de .bind(cet) au lieu de marinage sur angulaire de l'intérieur.L'utilisation d'un service et que seul l'accès LocalStorage par le biais de ce service à partir de partout.
Le service peut fournir des observables qui émettent des événements sur les changements et vous pouvez vous abonner à ces observables pour être averti.
Je sais que ce post est un peu vieux, mais il y a des bibliothèques qui peuvent le faire pour vous. Par exemple, le h5webstorage vous permettra de traiter localStorage et sessionStorage comme des objets ordinaires et de synchronisation est géré automatiquement. Même les modifications de stockage directement réinjectés dans votre application.