অ্যাংুলারজ ব্যবহার করে আমি কীভাবে স্থানীয় স্টোরেজে ডেটা সঞ্চয় করব?


177

বর্তমানে আমি কোনও ক্রিয়া সম্পাদন করতে সার্ভিসটি ডেটা পুনরুদ্ধার করে সার্ভারে নিজেই ডেটা সঞ্চয় করতে ব্যবহার করছি।

এর পরিবর্তে, সার্ভারে ডেটা সঞ্চয় করার পরিবর্তে আমি স্থানীয় স্টোরেজে ডেটা রাখতে চাই। আমি এটা কিভাবে করবো?

উত্তর:


125

এটি আমার কোডের একটি অংশ যা স্থানীয় সঞ্চয়স্থানে সঞ্চয় করে এবং পুনরুদ্ধার করে। আমি মডেলের মানগুলি সংরক্ষণ এবং পুনরুদ্ধার করতে সম্প্রচার ইভেন্টগুলি ব্যবহার করি।

app.factory('userService', ['$rootScope', function ($rootScope) {

    var service = {

        model: {
            name: '',
            email: ''
        },

        SaveState: function () {
            sessionStorage.userService = angular.toJson(service.model);
        },

        RestoreState: function () {
            service.model = angular.fromJson(sessionStorage.userService);
        }
    }

    $rootScope.$on("savestate", service.SaveState);
    $rootScope.$on("restorestate", service.RestoreState);

    return service;
}]);

9
আপনি কিভাবে এটি ব্যবহার করব?
chovy

4
chovy, এখানে সম্পূর্ণ কৌণিক উদাহরণ stackoverflow.com/questions/12940974/...
আন্তন

290
রেকর্ডের জন্য sessionStoragelocalStorage
মঙ্গল রবার্টসন

4
আপনি $ উইন্ডো.অ্যাসিওশন স্টোরেজটি ব্যবহার করতে পারেন যাতে আপনি এটি আপনার পরীক্ষাগুলিতে ইনজেক্ট করতে পারেন
গিলাইম ম্যাসেজ


105

আপনি যদি সংরক্ষণ করতে $window.localStorage.setItem(key,value), $window.localStorage.getItem(key)পুনরুদ্ধার করতে এবং $window.localStorage.removeItem(key)অপসারণ করতে ব্যবহার করেন তবে আপনি যে কোনও পৃষ্ঠাতে মানগুলি অ্যাক্সেস করতে পারেন।

আপনাকে $windowনিয়ামকের কাছে পরিষেবাটি পাস করতে হবে । জাভাস্ক্রিপ্টে থাকা সত্ত্বেও, windowবিশ্বব্যাপী অবজেক্টটি উপলব্ধ।

ব্যবহার $window.localStorage.xxXX()করে ব্যবহারকারীর localStorageমানের উপর নিয়ন্ত্রণ থাকে । ব্রাউজারের উপর নির্ভর করে ডেটার আকার। আপনি যদি কেবলমাত্র ব্যবহার করেন $localStorageতবে অন্য পৃষ্ঠায় নেভিগেট করার জন্য আপনি উইন্ডো.লোকেশন.হরফ ব্যবহার করুন এবং আপনি যদি <a href="location"></a>অন্য পৃষ্ঠায় নেভিগেট করতে ব্যবহার করেন তবে আপনার $localStorageমানটি পরবর্তী পৃষ্ঠায় হারিয়ে যাবে।


12
এই সমাধানটি আমার সেরা উপযোগী। আপনি যখন খুব সহজেই সরাসরি ডমটিতে যেতে পারেন তখন কেন প্লাগ-ইন বা মডিউল ব্যবহার করবেন? যেহেতু আমি সাধারণ স্ট্রিংয়ের পরিবর্তে অবজেক্টগুলি সঞ্চয় করতে চেয়েছি, আমি getItem () এর সংমিশ্রণে সেটইটেম () এবং কৌণিক.ফ্রমজসন () এর সাথে মিলিয়ে কৌণিক.টোজসন () ব্যবহার করেছি। সহজ। এটা ভাল।
ব্রেট ডোনাল্ড

5
এটি সেরা উত্তর। কোন বাহ্যিক নির্ভরতা প্রয়োজন।
ক্যাস্পার জিমিয়ানেক

2
সম্মত, কী / মান জুড়ি পরিচালনার জন্য এটি সহজ সমাধান
জোলি সাফট

লাইনের কী কী:। উইন্ডো.লোকালস্পোরজিটসেট আইটেম (কী, মান)। এটি কোথায় ঘোষণা এবং সেট করা হয়?

কীটি আপনি যা চান তা হ'ল সেই অনন্য আইডির মান হতে পারে। সুতরাং আপনি যখন কিছু সঞ্চয় করেন তখন আপনি কীটি সংজ্ঞায়িত করেন এবং এটি পুনরুদ্ধার করতে আপনি একই জিনিস ব্যবহার করেন।
ব্যবহারকারী 441521

56

স্থানীয় স্টোরেজের জন্য নীচে ইউআরএলটি দেখার জন্য একটি মডিউল রয়েছে:

https://github.com/grevory/angular-local-storage

এবং এইচটিএমএল 5 স্থানীয় স্টোরেজ এবং কৌণিক জেসের জন্য অন্যান্য লিঙ্ক

http://www.amitavroy.com/justread/content/articles/html5-local-storage-with-angular-js/


5
কেবলমাত্র লিংক উত্তরগুলি স্ট্যাকওভারফ্লোতে নিরস্ত করা হয় কারণ বাহ্যিক লিঙ্কগুলি মারা যায় die
হুবার্ট গ্রেজস্কোয়িয়াক

50

আপনার ngStorageসমস্ত AngularJS স্থানীয় স্টোরেজ প্রয়োজনের জন্য ব্যবহার করুন । দয়া করে মনে রাখবেন যে এটি কৌণিক জেএস কাঠামোর কোনও স্থানীয় অংশ নয়।

ngStorage দুটি পরিষেবা রয়েছে, $localStorageএবং$sessionStorage

angular.module('app', [
   'ngStorage'
]).controller('Ctrl', function(
    $scope,
    $localStorage,
    $sessionStorage
){});

ডেমো পরীক্ষা করুন


24
উল্লেখযোগ্য যে এটি কৌণিকের অংশ নয়, এবং অতিরিক্ত ফাইল হিসাবে আমদানি করা উচিত
সেরেজ

1
এনপিএম মডিউলে লিঙ্ক?
chovy


2

আপনি localStorageএই উদ্দেশ্যে ব্যবহার করতে পারেন ।

পদক্ষেপ:

  1. আপনার ফাইলে ngStorage.min.js যুক্ত করুন
  2. আপনার মডিউলে এনজিস্টোরেজ নির্ভরতা যুক্ত করুন
  3. আপনার নিয়ামকটিতে S লোকালস্টোরেজ মডিউল যুক্ত করুন
  4. S লোকালস্টোরেজ.কি = মান ব্যবহার করুন

2

আমি কৌনিক এইচটিএমএল 5 স্টোরেজ পরিষেবাটি লিখেছি (এখনও অন্য)। আমি নিজের দ্বারা তৈরি হওয়া স্বয়ংক্রিয় আপডেটগুলি রাখতে চেয়েছিলাম ngStorage, তবে ডাইজেস্ট চক্রগুলি আরও অনুমানযোগ্য / স্বজ্ঞাত (কমপক্ষে আমার জন্য) তৈরি করতে পারি, রাষ্ট্রীয় পুনরায় লোডের প্রয়োজন হলে হ্যান্ডেল করার জন্য ইভেন্টগুলি যুক্ত করতে পারি এবং ট্যাবগুলির মধ্যে ভাগ করে নেওয়ার সময় সেশন স্টোরেজ যুক্ত করতে পারি। আমি পরে এপিআই মডেল করেছি $resourceএবং এটি কল করেছি angular-stored-object। এটি নিম্নলিখিত হিসাবে ব্যবহার করা যেতে পারে:

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

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

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

এপিআই এখানে আছে

রেপো এখানে আছে

আশা করি এটি কারও সাহায্য করবে!


দয়া করে নীচের ভোটাররা কি তাদের ভোটগুলি বোঝাতে আগ্রহী?
ডারমাইক

1
আমি এখন আমার প্রকল্পে কৌণিক-সঞ্চিত-অবজেক্টটি ব্যবহার করি এবং এটি ব্যবহার করা সত্যই সহজ। আরও বেশি, ইয়াাকভ প্রশ্নের উত্তর দেওয়ার ক্ষেত্রে খুব দ্রুত। সুতরাং আমি এটি সুপারিশ না!
জেআর ইউটিলি

2

কৌণিক - স্থানীয় সঞ্চয়স্থানে ডেটা সংরক্ষণের পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনার ফোল্ডারে 'ngStorage.js' যুক্ত করুন।
  2. আপনার কৌণিক.মডিউলগুলিতে 'এনজিস্টোরেজ' ইনজেক্ট করুন

        eg: angular.module("app", [ 'ngStorage']);
  3. যোগ $localStorageআপনার app.controller ফাংশনে

4. আপনি $localStorageআপনার নিয়ামকের ভিতরে ব্যবহার করতে পারেন

Eg: $localstorage.login= true;

উপরেরগুলি আপনার ব্রাউজার অ্যাপ্লিকেশনটিতে লোকাল স্টোরেজ সংরক্ষণ করবে


1

আপনার প্রয়োজনের উপর নির্ভর করে, আপনি যদি ডেটা শেষ পর্যন্ত শেষ করতে বা কতগুলি রেকর্ড সংরক্ষণ করতে চান তার সীমাবদ্ধতা নির্ধারণ করতে চান, আপনি https://github.com/jmdobry/angular-cache এও দেখতে পারেন যা আপনাকে সংজ্ঞায়িত করতে দেয় কিনা ক্যাশে মেমোরি, লোকালস্টোরেজ বা সেশন স্টোরেজে বসে।


1

একে বলা হয় এনজিস্টোরেজ নামে পরিচিত যার জন্য তৃতীয় পক্ষের স্ক্রিপ্ট ব্যবহার করা উচিত এটি কীভাবে ব্যবহার করতে হয় তার একটি উদাহরণ I এটি সুযোগ / দর্শন পরিবর্তনের সাথে লোকাল স্টোরেজ আপডেট করে।

    <!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>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.