Javascript 在本地存储中保存数据
我正在尝试将数据保存到本地存储。通过构造函数创建“类”,并尝试将get和set方法放入其中。但当我点击我的按钮时(点击按钮时,数据必须保存),什么都没有发生(在开发者工具的“资源”选项卡中)。当我尝试通过JSON.stringify保存简单数据时,一切都成功了Javascript 在本地存储中保存数据,javascript,Javascript,我正在尝试将数据保存到本地存储。通过构造函数创建“类”,并尝试将get和set方法放入其中。但当我点击我的按钮时(点击按钮时,数据必须保存),什么都没有发生(在开发者工具的“资源”选项卡中)。当我尝试通过JSON.stringify保存简单数据时,一切都成功了 (function() { window.onload = function() { document.getElementById('buttonCreate').onclick = function() { v
(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 storage = new Storage();
var ticket = {
topic: topicValue,
status: statusValue,
description: descriptionValue
};
storage.set("Item", item);
}
}
})();
“类别”存储:
根据Mike McCaughan的评论,您引用了一个未定义的变量 使用严格模式会捕捉到这一点 用于处理存储中项目的密钥中还有另一个错误:
'items' !== 'Item'
还有,;代码中没有类。代码的确切问题是存储密钥以及试图存储的未定义的
项
- 它将其存储在
项
键中,并编写get方法从键项
中获取它
- 通过查看给定的代码,您应该假设存储
ticket
对象<代码>存储.设置(票据)代码>
建议的更好方法:传递键
实例化存储
对象,然后相应地使用它
例如var存储=新存储('Item')代码>
“类别”存储:
要获取存储在localstorage中的票证值,请执行以下操作:
var storage = new Storage('ticket');
var ticket = storage.get();
您的getter正在引用此。_ITEMS\u描述符
,但您的setter没有。storage.set(“Item”,Item)
。。。但是没有定义项
变量。^修复后,我认为“类”意味着它们有一个构造函数。而且,关键是什么并不重要;他们说这根本不节约。尽管这在以后尝试使用get
时会成为一个问题。虽然这可能是一个更好的设计,取决于OPs的需要,但这并不能解决问题。原始代码的确切问题是存储密钥。它将其存储在项中
,并编写get方法从项中获取它:)不,不是。他们甚至没有使用get
。问题是他们引用的变量(项
)不存在。你是对的,当前的get
在他们使用时会被破坏,但这是另一个问题。目前,他们甚至无法使用set
功能保存任何内容,无论键是什么。
(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 storage = new Storage("ticket");
var ticket = {
topic: topicValue,
status: statusValue,
description: descriptionValue
};
storage.set(ticket);
}
}
})();
function Storage(key) {
this._ITEMS_DESCRIPTOR = key;
}
Storage.prototype.get = function() {
var fromStorage = localStorage.getItem(this._ITEMS_DESCRIPTOR);
return fromStorage ? JSON.parse(fromStorage) : {};
};
Storage.prototype.set = function(item) {
localStorage.setItem(this._ITEMS_DESCRIPTOR, JSON.stringify(item));
};
var storage = new Storage('ticket');
var ticket = storage.get();