Ich muss Schlüsselwert inkrementieren, wenn ich Daten in LocalStorage speichern, da, wenn ich auf die Schaltfläche Taste für alle Datensätze gleich ist und Datensatz nur aktualisieren, erstellt nicht neu. Ich weiß, dass ich das mit Schließungen machen kann, aber ich bin frisch in JS und weiß nicht, wie ich es richtig machen soll.Inkrementieren Schlüsselwert zum Speichern von Daten im lokalen Speicher
(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));
};
Als ersten Schritt müssen Sie Ihren Code formatieren, damit er besser lesbar ist. (ex http://www.danstools.com/javascript-beautify/) –
Sie müssen hasTicket = true oder false, wenn (hasTicket) // aktualisieren sonst in Storage.Why nicht versuchen, dies zu tun? –
Ich sehe keine Schließung in Ihrem Code, nur unnötige sofort aufgerufene Funktionsausdrücke ohne Closure-Variablen .. es ist auch nicht klar, ob Sie Schlüssel nur während 1 Sitzung oder zwischen Sitzungen inkrementieren => lesen Sie den neuesten Schlüssel im Speicher vor der Einstellung ein neuer Schlüssel – Aprillion