2017-05-03 8 views
0

私はこのようなローカルストレージ持っている:私はすべてのあなたのJSONデータのTATが権利を取得知らせる場合私の見解では角度ローカルストレージからオブジェクト値を取得する方法。

{ 
    "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 
     } 
    ], 
} 

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は、次のようなJSONデータが含まれています。

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

メンバー名のみを印刷しようとしましたが、動作しませんでした。私はリストのデータをコントローラーの$範囲に入れました。

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

答えて

1

あなたはJSON

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

編集を解析する必要があります。
それはあなたがのlocalStorageにそれを保存する前文字列化 JSONに必要

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

を動作しません。

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

編集2:

このようください:このように

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

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

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

私は私の見解では{{listdata.first_nameを}}を使用している場合、それはnullです。コンソールでは、未定義を示しています.. –

+0

@PrashanthHarishあなたがこれをしているとします:$ scope.listdata = localStorage.setItem( "memberdata"、JSON.stringify($ scope.products))、 – Ved

+0

はい私はしました...... –

0

この1つの

VAR localMemberdata = localStorage.memberdataをお試しください。

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

ビューで

{{localMemberdata.first_name}}

これは正しい答えとしてそれを確認してください、私は

+0

ローカルに保存すると、次のようになります。 localStorage.setItem( 'localMemberdata'、JSON.stringify($ scope.products)); – Kristoff

+0

私がローカルストレージを使用した理由は、データを残すべきページをリフレッシュするときです。あなたの場合、リフレッシュ後にデータが削除されています。 –

+0

本当ですか?私はこれをユーザー認証に使用しましたが、私はそれを満たしていませんでした – Kristoff

0

100%の作業も確信している場合は、このような何かを試してみてください。

 var localListdata = localStorage.memberdata; 

     if (localListdata) { 

      console.log("true") 

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

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

コードが正常に動作しています。唯一のことは、JSONは有効なJSONではないということです。

JSON Validatorのスクリーンショット:

enter image description here

Working Demo

+0

返信ありがとうございます。コードは間違っていませんが、ブラウザのリフレッシュデータが削除されている間に、私のフレームワークがローカルストレージデータを消去していると思います... –

+0

これは発生しません。私は、ページのload.removeの外側のlocalStorage setItem関数でlocalStorageに空のデータを設定していると思います。 –

関連する問題