2016-10-31 10 views
0

私はオブジェクトの配列をスコープ変数に格納しています。その問題は、ユーザーがページを更新し、そのデータを保持しないため、Cookieの使用を検討している場合です。オブジェクトの配列をクッキーに格納するAngularJS

変数$ scope.Usersは、ユーザーオブジェクトの配列を格納し、私はクッキーにそのデータを取得するには、次のコードを使用しています:

すべてのデータを表示しません
if ($cookies.getObject('user_data') === '' || $cookies.getObject('user_data') === undefined)        
     $cookies.putObject('user_data',$scope.Users); 

は私が

を使用しています

はconsole.log($ cookies.getObject( 'のuser_data'))

と私は戻って何かを得ていないのです、のputObjectは、データを保存していないようです。ここで何が間違っているのでしょうか?クッキーのサイズが制限を超えていますか?

<tr ng-repeat="User in Users"> 
    <td>{{User.Name}}</td> 
    <td>{{User.ID}}</td> 
    <td>{{User.DOB}}</td> 
    <td>{{User.Status}}</td> 
    </tr> 

私の質問は、私はクッキーからの配列を取得し、その内容を表示する方法である:

は以前、私は私のhtmlページからそのデータを取得するには、次の使用しましたか?また、リフレッシュによってオブジェクトの配列を保持するためのよりよい方法がありますか?サービスはうまくいくでしょうか?

答えて

0

はデータ

$cookies.user_data = $scope.users;  

へを設定するには、

angular.module('cookiesExample', ['ngCookies']) 

あなたは、コントローラでこれを行うことができ、あなたはモジュールの依存関係としてngCookiesを注入していることを確認しますデータを取得する

$scope.Users= $cookies.user_data; 

HTML

<tr ng-repeat="User in Users"> 
    <td>{{User.Name}}</td> 
    <td>{{User.ID}}</td> 
    <td>{{User.DOB}}</td> 
    <td>{{User.Status}}</td> 
</tr> 

DEMO

+0

オブジェクトを扱う際に '$ cookies.put'が動作しませんでした...また、ユーザーがページを更新するたびに$ scope.usersがクリアされるため、Cookieを使用し始めました。したがって、永続的なデータストレージが必要です – ElenaDBA

+0

@ ElenaDBAデモもチェックしてください。あなたの角バージョンも1.4以上にする必要があります。 – Sajeetharan

+0

角度1.5.8を使用します。 – ElenaDBA

0

私は問題なく、あなたのシナリオを再作成。どのバージョンの$クッキーを使用していますか?それはあなたの角のバージョンに一致する必要があります。

データの永続化については、私が考えることのできる唯一の選択肢は、それをサーバーに保存することです。リフレッシュするとサービスが無効になるため、サービスは機能しません。

+0

ここでは、私が試みたplunkrはhttps://plnkr.co/edit/SPw4qtK9eaRK5hP4km0c?p=previewです –

関連する問題