각 컨트롤러를 주입하려면 서비스가 필요하고 통합 액세스를 위해서는 $ rootScope가 필요합니다. 각도 응용 프로그램을 사용하여 동일한 작업을 수행하고 있습니다. 당신을 시작하게하는 나의 버전이 여기있다.
이
angular.module('myApp').service('Dataservice', [
'Authutils',
function Dataservice(Authutils) {
var _test = [1, 2, 3];
var hasStorage = function() {
if (Modernizr.localstorage) {
return true;
} else {
return false;
}
};
var _get = function(key, make, init_data) {
var out = [];
var create = typeof make !== "undefined" ? make : false;
var data = typeof init_data !== "undefined" ? init_data : false;
if (hasStorage()) {
var sval = localStorage.getItem(key);
if (!!sval) {
try {
sval = Authutils.decrypt(sval);
out = JSON.parse(sval);
} catch (e) {
}
} else {
if (create) {
if (data) {
data = Authutils.encrypt(data);
_set(key, data);
} else {
_set(key, []);
}
}
}
}
return out;
};
var _set = function(key, value) {
if (hasStorage()) {
var subject = JSON.stringify(value);
localStorage.setItem(key, Authutils.encrypt(subject));
return true;
}
return false;
};
var _drop = function(key) {
if (hasStorage()) {
localStorage.removeItem(key);
return true;
}
return false;
};
var _nuke = function() {
if (hasStorage()) {
localStorage.clear();
return true;
}
return false;
};
var _push = function(key, value) {
var out = [];
if (hasStorage()) {
var current = JSON.parse(localStorage.getItem(key));
if (!!current) {
current.push(value);
_set(key, current);
}
}
return out;
};
return {
get: function(key, make, init_data) {
return _get(key, make, init_data);
},
set: function(key, value) {
_set(key, value);
},
push: function(key, value) {
_push(key, value);
},
trash: function(key) {
_cut(key);
},
nuke: function() {
_nuke();
},
test: function() {
return _test;
}
};
}
]);
당신이'대체 시도해 봤어 : 당신이 그 코드에서 사용 참조 Authutils 서비스는 브라우저 디버깅 도구를 쉽게 볼 수 있기 때문에 저장된 자원을 더 안전하게 보호하기 위해 http://bitwiseshiftleft.github.io/sjcl/ 스탠포드 자바 스크립트 암호화 라이브러리의 구현입니다 sessionStorage'를'localStorage'로 변경 하시겠습니까? 둘 다 동일한 [스토리지 API] (http://www.w3.org/TR/webstorage/#storage)를 사용합니다. –
나는 시도하지 않았다. 그러나 효과가있었습니다. 너무 어리 석다. 각도 - 로컬 스토리지가있는 사이드 트랙이 있습니다. Thanks – GeekOnGadgets
다른 탭을 통해 액세스하는 경우 같은 탭에서만 sessionStorage 액세스를 사용하는 localStorage를 사용해야합니다.하지만 왜 angularJS를 사용하는 동안 다른 탭에 표시해야하는지 궁금합니다. –