私はangular
変数をページ更新/コントローラー間で保持する方法を見つけようとしています。私のワークフローは、
私は2つの方法を試しました
1-トークンをrootScope
に割り当てていません
2-factory
を使用して
_#app.js
'use strict';
angular.module('recipeapp', [])
.run(['$rootScope', '$injector', 'Authenticate', function($rootScope,$injector, Authenticate){
$injector.get("$http").defaults.transformRequest = function(data, headersGetter) {
$injector.get('$http').defaults.headers.common['auth-token'] = Authenticate.getToken();
}
}]);
#factory
'use strict';
angular.module('recipeapp')
.factory('Authenticate', function(){
var factory = {};
var accessToken = "";
factory.setToken = function(token) {
accessToken = token;
}
factory.getToken = function() {
return accessToken;
}
return factory;
})
#facebook controller
I set the the token with every successful login
Authenticate.setToken(data.app_token);
_
しかし、問題は、ページを更新すると、Authenticate.getToken()
が空白になることです。私はangular
にかなり慣れていないので、ページの更新後にデータを保持する方法がわかりません。
どんな助けも大歓迎です
localStorage
を使用できます。とても使いやすいです。
var token = "xxx";
localStorage.setItem("token", token);
localStorage.getItem("token"); //returns "xxx"
ページを更新すると、JavaScriptコンテキストがすべて失われます(変数に保存されたすべてのデータを含む)。
あるセッションから別のセッションへの情報を維持する1つの方法は、ブラウザーのlocalStorageを使用することです。あなたの場合、おそらく ngStorage をチェックしたいでしょう。
$ window.localStorageを使用して同じことを行いました。
受け入れられた答えに似ています。
var token = "xxx";
$window.localStorage.setItem("token",token);
$window.localStorage.getItem("token"); //returns "xxx"
$window.localStorage.removeItem("token"); //deletes token
クッキーを使用できます
単純な変数を配置するには
$cookies.put('user', 'abc');
オブジェクトを保存するには
$cookies.putObject('objSocket', anyObject);
cookieの使用からデータを取得するには
$cookies.getObject('objSocket');
そして
$cookies.get('user');
上記のコードを使用するには、cookies.js cdnjsは次のとおりです。
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-rc.0/angular-cookies.min.js"></script>
今すぐ$cookies
をコントローラーに、ngCookies
をapp.jsに
use `localStorage.setItem("key",value);` to set the value.
use `localStorage.getItem("key");`to get the value.
use `localStorage.clear();`to clear the value which is set