我在导入缓存数据时遇到问题。我现在有一个非常简单的页面用作概念证明。后端有一张桌子。我有所有CRUD功能。当用户更改本地数据时,我会更新本地存储中的记录。
var bundle = em.exportEntities(em.getChanges());
window.localStorage.setItem("waterLevelChanges", bundle);
导入实体
var bundle = window.localStorage.getItem("waterLevelChanges");
if (bundle)
em.importEntities(bundle);
如果我正在编辑现有记录,这将完美无缺。但是,我添加但未保存到数据库的任何记录都不会填充。在捆绑中,他们的实体状态为“已添加”。我读到如果你不使用临时密钥就会出现问题,但是我让Breeze使用临时密钥并根据需要进行管理。我已经通过查看开发人员工具验证了数据是否存储在本地缓存中。我调试时也可以在捆绑包中看到它。
答案 0 :(得分:0)
我们的测试显示您声明的方案应该可以正常工作。
请参阅此DocCode:export/importTests.js test,其中导出新Order
,保存到浏览器存储空间并重新导入;它"已添加"国家得到确认。 Order
类型具有服务器生成的临时密钥。
我认为你必须创建一个失败场景的复制品,以使我确信它不起作用。也许你可以从分叉this Todos plunker开始并修改它以表明你的观点; TodoItem
也有服务器生成的临时密钥。