В моем приложении Ионные я добавил плагин «ngStorage» и поставляется с небольшим демо-код:Сохранить ключ => значение стиля с ngStorage/LocalStorage
var add = function (thing) {
$localStorage.things.push(thing);
}
Это работает точно так же, как сказал. I add("foo")
это, и делать getAll()
и значение есть. Я удаляю add()
, но сохраняю getAll()
, у меня все еще есть значение «foo» (как и ожидалось).
Это не очень полезно для меня, я хочу, чтобы получить доступ к нему с помощью клавиш, так что я сделал следующее:
var addByKey = function (key, value) {
$localStorage.things[key] = value;
// Or, I've also tried:
$localStorage.things.key = value;
}
Когда я делаю addByKey("foo","bar")
, а затем getAll()
я получаю значение точно как я хочу. Когда я удаляю addByKey()
и перезагружаюсь, я ожидаю, что он все еще помнит установленную информацию, но ее не существует. Однако первая попытка с помощью функции add()
по-прежнему существует, «foo» все еще существует (это означает, что массив не сбрасывается).
Как создать тип типа key-> value?
В случае, если это полезно:
.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