Prashanth Harish
Prashanth Harish

Reputation: 178

How to get object values from Angular local storage.?

I have an local storage like this :

localStorage.setItem("memberdata", JSON.stringify($scope.products));                

                $scope.listdata= localStorage.getItem("memberdata");
                if($scope.listdata){
                    $scope.listdata = JSON.parse($scope.listdata)
                }else {
                    localStorage.setItem("memberdata", JSON.stringify($scope.products));
                }

$scope.products contains the following JSON data :

{
    "member_id": 54,
    "first_name": "Hima",
    "middle_name": "Ganapathy",
    "last_name": "Hegde",
    "joining_date": "2017-28-04",
    "phone": 7411556977,
    "password": "1234",
    "mail": "[email protected]",
    "system_date": "Apr 28, 2017 2:26:33 PM",
    "society_id": 10,
    "role": [
        {
            "role_id": 4,
            "name": "User",
            "details": "text"
        }
    ],
    "associated": [
        {
            "associated_id": 1,
            "associated_name": "Parent",
            "primary_member_id": 1
        }
    ],
}

In my view if I alert I get all thee JSON data tats right.

alert(localStorage.getItem("memberdata"));

I tried to print member name only but not working. Even thow I putted listdata in $scope of my controller.

{{listdata.first_name}} // Working but deleting when page refreshes

Upvotes: 0

Views: 1890

Answers (4)

Rohìt Jíndal
Rohìt Jíndal

Reputation: 27192

Your code is working fine. The only thing is that provided JSON is not a valid JSON.

JSON Validator screenshot :

enter image description here

Working Demo

Upvotes: 0

Ved
Ved

Reputation: 12093

You need to parse the JSON

   $scope.listdata= JSON.parse(localStorage.getItem("memberdata"))
    console.log($scope.listdata.first_name);

Edit.
It will not work

$scope.listdata = localStorage.setItem("memberdata", angular.toJson($scope.products));//wrong

You need to stringify JSON before saving it to localstorage.

Like this:

localStorage.setItem("memberdata", JSON.stringify($scope.products));

Edit 2:

Do like this:

$scope.listdata= localStorage.getItem("memberdata");

if($scope.listdata){
    $scope.listdata = JSON.parse($scope.listdata)

}else {
    localStorage.setItem("memberdata", JSON.stringify($scope.products));
}

Upvotes: 2

Kristoff
Kristoff

Reputation: 213

Try something like this:

        var localListdata = localStorage.memberdata;

        if (localListdata ) {

             console.log("true")

          $rootScope.localListdata = JSON.parse(localListdat);

        } else {
            console.log("null")
        }

Upvotes: 0

Kristoff
Kristoff

Reputation: 213

Try this one

var localMemberdata = localStorage.memberdata;

$rootScope.localMemberdata = JSON.parse(localMemberdata);

In View

{{ localMemberdata.first_name }}

if this correct please check it as answer but I'm sure 100% work well

Upvotes: 0

Related Questions