programing

페이지 새로 고침 후 각도 변수 유지

stoneblock 2023. 10. 21. 09:53

페이지 새로 고침 후 각도 변수 유지

저는 제 것을 유지할 방법을 찾고 있습니다.angular페이지 새로 고침/컨트롤러 간의 변수.저의 작업 흐름은,

  • 사용자는 페이스북을 통해 로그인하고 액세스 토큰을 얻습니다.
  • 사용자 액세스 토큰은 모든 요청과 함께 사용됩니다.

두가지 방법을 시도했지만,

1 - 토큰을 a에 할당하기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 컨텍스트가 손실됩니다.

한 세션에서 다른 세션으로 정보를 유지하는 한 가지 방법은 브라우저의 localStorage를 사용하는 것입니다.이 경우 스토리지를 확인해야 할 것입니다.

저도 마찬가지로 $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);

쿠키에서 데이터를 가져오려면 사용합니다.

$cookies.getObject('objSocket');

그리고.

$cookies.get('user');

위의 code 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당신의 컨트롤러에 그리고.ngCookiesapp.js로 이동합니다.

자세한 내용은 https://docs.angularjs.org/api/ngCookies 에서 확인하실 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/26118851/retain-angular-variables-after-page-refresh