【发布时间】:2015-01-12 21:51:15
【问题描述】:
我正在将我的 ember 数据存储缓存到本地存储。在第一次加载时,我查询服务器将数据加载到存储中,然后将其加载到本地存储中。在随后的页面加载中,我从本地存储中提取数据并将其加载到存储中。我可以使用pushMany 方法来做到这一点。
商店的pushMany 方法需要标准化数据。来自服务器的有效负载通过模型序列化程序进行规范化。一旦规范化数据在存储中,相信应该可以将规范化数据提取出来似乎是合理的。
那么如何从存储中提取标准化数据?
每个模型都有一个_data 属性。 '_data' 属性仅适用于平面模型。更复杂的模型_data 属性包含实例化的关系。
我希望避免多次序列化/反序列化。
This 是我目前的实现。 toJson 方法的问题是它必须加载所有关联,包括尚未解决的异步关系。我认为关于 ember 数据如何解析关系主键/外键存在一个基本问题。
【问题讨论】:
-
我不知道这是否是您的意思,但您可以通过使用 all - via emberjs.com/guides/models/finding-records/… 从商店获取记录而无需请求服务器,而不发出另一个网络请求,而是使用 all 。”
var posts = this.store.all('post');// => 没有网络请求 -
这里有一个要点gist.github.com/arenoir/…
-
这适用于没有关系的模型。 IMO 模型上应该有一种提取原始标准化数据的方法。
-
是的,我认为解决方案不可能那么简单......
标签: ember.js ember-data