Мне нужно увеличить значение ключа, когда я сохраняю данные в localstorage, потому что, когда я нажимаю кнопку кнопки, то же самое для всех записей и записи просто обновляется, не создает новых. Я знаю, что могу сделать это с закрытием бит, который я свеж в JS, и не знаю, как это сделать правильно.Увеличение значения ключа для сохранения данных в localstorage
(function() {
window.onload = function() {
document.getElementById('buttonCreate').onclick = function() {
var topicValue = document.getElementById("create-topic").value;
var statusValue = document.getElementById("create-status").value;
var descriptionValue = document.getElementById("create-description").value;
var key = 0;
var storage = new Storage();
var ticket = {
topic: topicValue,
status: statusValue,
description: descriptionValue
};
storage.set(key, ticket);
return (function() {
key++;
return key;
}());
}
}
})();
function Storage() {
this._ITEMS_DESCRIPTOR = 'items';
}
Storage.prototype.get = function() {
var fromStorage = localStorage.getItem(this._ITEMS_DESCRIPTOR);
return fromStorage ? JSON.parse(fromStorage) : [];
};
Storage.prototype.set = function(key, items) {
localStorage.setItem(key, JSON.stringify(items));
};
В качестве первого шага вам необходимо отформатировать код, чтобы он был более читабельным. (ex http://www.danstools.com/javascript-beautify/) –
Вам нужно сохранить hasTicket = true или false, if (hasTicket) // обновить else, помещенную в Storage.Why не пытайтесь это сделать? –
Я не вижу замыкания в вашем коде, только ненужные вызовы, вызываемые немедленно, без переменных замыкания .. также неясно, нужно ли увеличивать ключ только в течение 1 сеанса или между сеансами => читать последний ключ в хранилище до установки новый ключ – Aprillion