와 가치 스타일은 내가 플러그인 'ngStorage'을 추가했습니다 그리고 약간의 데모 코드와 함께 제공 : 이야기로저장 키 => 내 이온 애플리케이션에서 ngStorage/로컬 스토리지
var add = function (thing) {
$localStorage.things.push(thing);
}
이 정확히 작동합니다. 나는 add("foo")
이며, getAll()
을하고 그 값이 있습니다. add()
을 제거했지만 getAll()
을 유지하고, 예상 한대로 "foo"값을 유지합니다.
이 나를 위해 매우 유용하지 않습니다, 나는 키에 액세스하려는, 그래서 나는 다음했습니다 : 나는 addByKey("foo","bar")
다음 getAll()
을 할 때 나는 정확하게 값을 얻을
var addByKey = function (key, value) {
$localStorage.things[key] = value;
// Or, I've also tried:
$localStorage.things.key = value;
}
내가 원하는대로. addByKey()
을 제거하고 새로 고침하면 설정 정보를 기억할 것으로 기대되지만 존재하지 않습니다. 그러나 add()
함수를 통한 첫 번째 시도는 여전히 존재하며 "foo"는 여전히 존재합니다 (배열이 다시 설정되지 않음을 의미).
키 - 값 유형의 구조를 만들려면 어떻게해야합니까?
.factory ('StorageService', function ($localStorage) {
$localStorage = $localStorage.$default({
things: []
});
var _getAll = function() {
return $localStorage.things;
};
var _add = function (thing) {
$localStorage.things.push(thing);
}
var _addByKey = function (thing, value) {
$localStorage.things[key] = value;
// Or, I've also tried:
$localStorage.things.key = value;
}
return {
getAll: _getAll,
add: _add,
addByKey: _addByKey
};
})
은'things' 부분은 예로서 만 존재한다. '아이템'을 사용하는 곳에서는 '물건'을 사용합니다. 나는 그 차이점을보기 위해 답을 다시 읽을 것입니다. – Martijn
@Martijn 특정 콜렉션처럼 작동하도록 변경해야합니다. '$ localStorage'의 루트에 저장하고 싶지는 않습니다. 저장소에 저장해야 할 수도 있습니다. 이 실제 컬렉션이 아닌 다른 것들. 그러나 문제가 아닌 경우이를 루트로 옮길 수도 있습니다. {D –
답변으로 배열 솔루션을 제공한다고 생각하면 정확합니까? 그렇다면 객체 솔루션은 키 문제가 사라지게된다면 문제가되지 않을 것입니다. – Martijn