179 votes

Comment stocker des données dans le stockage local en utilisant Angularjs ?

Actuellement, j'utilise un service pour effectuer une action, à savoir récupérer des données sur le serveur, puis les stocker sur le serveur lui-même.

Au lieu de cela, je veux mettre les données dans le stockage local au lieu de les stocker sur le serveur. Comment dois-je m'y prendre ?

2voto

Yaacov Points 185

Je suis l'auteur d'un (encore un) service de stockage angulaire html5. Je voulais garder les mises à jour automatiques rendues possibles par ngStorage mais rendre les cycles de digestion plus prévisibles/intuitifs (du moins pour moi), ajouter des événements pour gérer les rechargements d'état nécessaires, et aussi ajouter le partage du stockage de session entre les onglets. J'ai modelé l'API d'après $resource et l'a appelé angular-stored-object . Il peut être utilisé comme suit :

  angular
    .module('auth', ['yaacovCR.storedObject']);

  angular
    .module('auth')
    .factory('session', session);

  function session(ycr$StoredObject) {
    return new ycr$StoredObject('session');
  }

L'API est ici .

Le Repo est ici .

J'espère que ça aidera quelqu'un !

2voto

Sukhminder Parmar Points 155

Vous pouvez utiliser localStorage à cette fin.

Des pas :

  1. ajouter ngStorage.min.js dans votre fichier
  2. ajouter la dépendance ngStorage dans votre module
  3. ajouter le module $localStorage dans votre contrôleur
  4. utiliser $localStorage.key = value

2voto

sam ruben Points 21

Suivez les étapes pour stocker les données dans Angular - stockage local :

  1. Ajoutez 'ngStorage.js' dans votre dossier.

  2. Injectez 'ngStorage' dans votre module angulaire.

        eg: angular.module("app", [ 'ngStorage']);
  3. Ajouter $localStorage dans votre fonction app.controller

4. vous pouvez utiliser $localStorage à l'intérieur de votre contrôleur

Eg: $localstorage.login= true;

Ce qui précède permettra de stocker le localstorage dans l'application de votre navigateur.

1voto

Aaron Morrison Points 43

En fonction de vos besoins, par exemple si vous souhaitez que les données expirent ou si vous souhaitez limiter le nombre d'enregistrements à stocker, vous pouvez également envisager les options suivantes https://github.com/jmdobry/angular-cache qui vous permet de définir si le cache se trouve dans la mémoire, dans localStorage ou dans sessionStorage.

1voto

Aniket Jha Points 795

Il faut utiliser un script tiers pour cela appelé ngStorage voici un exemple d'utilisation, il met à jour le localstorage avec le changement de scope/view.

    <!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <!-- CDN Link -->
    <!--https://cdnjs.cloudflare.com/ajax/libs/ngStorage/0.3.6/ngStorage.min.js-->
    <script src="angular.min.js"></script>
    <script src="ngStorage.min.js"></script>
    <script>
        var app = angular.module('app', ['ngStorage']);
        app.factory("myfactory", function() {
            return {
                data: ["ram", "shyam"]
            };
        })
        app.controller('Ctrl', function($scope, $localStorage, $sessionStorage, myfactory) {

            $scope.abcd = $localStorage; //Pass $localStorage (or $sessionStorage) by reference to a hook under $scope
            // Delete from Local Storage
            //delete $scope.abcd.counter;
            // delete $localStorage.counter;
            // $localStorage.$reset(); // clear the localstorage
            /* $localStorage.$reset({
                 counter: 42   // reset with default value
             });*/
            // $scope.abcd.mydata=myfactory.data;
        });
    </script>
</head>

<body ng-app="app" ng-controller="Ctrl">

    <button ng-click="abcd.counter = abcd.counter + 1">{{abcd.counter}}</button>
</body>

</html>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X