在my Ember.js应用程序中的localStorage.clear()或deleteRecord()之后,本地存储数据将恢复
我正在观察在my Ember.js应用程序中的localStorage.clear()或deleteRecord()之后,本地存储数据将恢复,ember.js,local-storage,Ember.js,Local Storage,我正在观察localStorage.clear()或deleteRecord()()在我的余烬应用程序中被调用后的数据恢复 按照以下步骤复制问题: 打开chrome web开发-->资源-->本地存储-->“” 在此页面上添加一些Org,并观察它们是否已添加到本地存储 单击“清除本地存储”(案例1)或“删除组织数据”(案例2),观察本地存储是否已清除。不要刷新页面。(数据仍保留在页面上,但这没关系,因为我们尚未刷新页面。) 再添加一个组织,并观察所有已删除的组织是否已恢复(案例1)或LS是否未删
localStorage.clear()
或deleteRecord()
()在我的余烬应用程序中被调用后的数据恢复
按照以下步骤复制问题:
location.reload
)也能工作稍后编辑以包括deleteRecord()使用
清除擦除本地存储即可。是您的本地存储适配器(LSAdapter)在创建新记录时保持状态并重新填充以前清除的本地存储。这样做是因为记录存储在字符串中,LSAdapter
不知道您是否更改了它,所以它总是保存所有记录以确保同步
考虑销毁所有记录,而不是清除本地存储。九月份版本的Ember Data/Local Storage解决了这个问题
在与IRC上的人进行了一些讨论之后,目前LSAdapter或Ember数据中存在一个bug,导致数据徘徊
由于余烬数据即将发生变化,该问题自2013年8月起暂停
解决此问题的方法是清除本地存储和余烬数据
或者,您可以在清除本地存储后立即调用location.reload()
,以显示新数据 没问题。对不起,伙计,没问题我也在学习。这是否意味着LSAdapter不会每次都直接从本地存储获取数据?字符串是否存储在存储
中?在读取LSAdapter代码时,您可以看到本地存储
方法仅在两种情况下被调用:1)在\u saveData
中,将所有记录“序列化”并作为字符串放入本地存储;2)在\u loadData
中,从本地存储获取字符串并填充LSAdapted\u数据
属性与您的记录。在LSAdapter初始化期间,\u loadData
只被调用一次(init
方法),谢谢!还能用吗?它不起作用,我找不到中定义了destroy
的位置。余烬模型有一个方法destroyRecord
,可以调用您的记录。然后,您必须在您的商店中调用commit
,以使更改持久化。它在你的jsbin上运行良好。(仅供参考,它是deleteRecord
,也许你可以编辑你的评论。)