我的应用程序可能会丢失与服务器的连接数天,并且当它最终重新连接存储器中存在的某些记录时,服务器中不再存在。 我需要删除这些记录,而不会在ui中创建闪烁。
我尝试修复它,但无法到达任何地方。
store.findall似乎没有选择删除服务器未返回的记录。
我找不到连接store.unloadAll和store.findAll的方法,而不会让空白状态在屏幕上生效并导致闪烁
我也无法找到如何获得服务器实际返回的内容而无需完全手动(使用我自己的ajax调用,这显然无法扩展)
我想知道其他人在这种情况下使用的是什么
感谢您的帮助
答案 0 :(得分:0)
您可以覆盖适配器上的 shouldBackgroundReloadAll 和 shouldBackgroundReloadRecord 实施。
正如ember适配器文档中所述:
商店使用此方法来确定商店是否应该 在store.findAll方法解析后,重新加载一个记录数组 缓存记录数组。
类似的东西:
{{1}}
答案 1 :(得分:0)
您可以通过peekRecord()
然后reload()
获取每条记录的所有记录。如果您的UI不依赖于模型的isReloading
属性,则重新加载不应更改视图直到完成。如果您的API支持coalesceFindRequests
,并确保在同一个runloop中对模型的所有记录执行重新加载,则只应触发一个请求。
免责声明:我没有测试过这种方法,但应该可行。如果您遇到任何问题,请告诉我。