2016-07-11 17 views
0

現在、私はangularJSで小さなアプリを開発中です。 ユーザーはログインフォームを通過し、サーバーから取得したデータを表示する少数のリンクをクリックできます。angularJSでログイン情報を保存する方法

ログインフォームは、ユーザーの入力を受け取り、それは、私が毎回送信するサーバは、ログインフォームを必要とするため、それが格納されて維持する必要が正常に動作工場

app.factory('IdFormHolder', function() { 
    var that = this; 

    that.setId = function (data) { 
     that = data; 

    }; 
    that.getId = function() { 
     return that; 
    }; 

    return that; 
}); 

に「保存」されます私はヘッダーとして$ http.getを行います。

各コントローラは工場からログインフォームを取得し、それを使用してサーバーからデータを取得します。

誰かがページを更新するまで、これはうまくいきます。その時点で、ログインフォームから工場が空になっているように見え、Webアプリケーションは何も表示しません。

このログイン情報を保存して、簡単に消去できないようにする方法はありますか?

+1

あなたがangular.DownloadとドキュメントからのsessionStorageモジュールを使用して、それを保存する必要がありますが、ここにあります。http:// ngmodules.org/modules/ngStorage –

+1

あなたは単にブラウザの情報を保存することができますlocalstorage –

答えて

2

youveはのsessionStorageインストールした後、あなたは、このコードを使用することができます:

app.factory('IdFormHolder', ['$sessionStorage', function ($sessionStorage) { 
    var that = this; 

    that.setId = function (data) { 
     $sessionStorage.id = data; 
     that = data; 

    }; 
    that.getId = function() { 
     return $sessionStorage.id; 
    }; 

    return that; 
}]); 

ダウンロードリンク:ローカルDBのいくつかの種類を使用する必要があるだろうデータを永続化するためにhttps://github.com/gsklee/ngStorage

+0

ありがとう、私にとっては十分に簡単だと思われる –

+0

私はそれを前にvarを追加する必要があるようです。依存性注入におけるsessionStrorage –

0

を|| LocalStorage ||少なくともSessionStorage。ファクトリを初期化するときに、DB/LSからそのデータをチェックし、それが存在する場合は変数として保持することができます。

あなたはブラウザのローカルストレージにアクセスすることができangular-local-storageを使用

app.factory('IdFormHolder', function() { 
    this.heldId = attemptToGetSavedDataFromSomewhere(); // would be null otherwise 

    this.setId = (id) => { 
     this.heldId = id; 
    }; 

    this.getId =() => this.heldId; 

    return this; 
}); 
0

ような何か:

app.factory('IdFormHolder', function(localStorageService) { 
    return { 
     setId: function(data) { 
      return localStorageService.set('loggedUserData', data); 
     }, 
     getId: function() { 
      return localStorageService.get('loggedUserData'); 
     } 
    }; 
}); 
関連する問題