我正在构建一个以Parse作为后端的Ember应用。开箱即用的解决方案与关系有些奇怪 - 它们只能以一种方式工作。 / /我一直试图通过在Ember中保存两个模型来手动使关系工作两种方式,但这看起来很混乱,并且可能意味着数据很容易失去同步。呸。所以现在我正在寻找替代品。
首先,让我更详细地解释一下。
假设我有post
和comments
。 Parse将存储来自comments
- >的关系。 post
,但不是相反。或者,我可以在“指针数组”中管理comments
的列表,但不能管理comments
- >中的一对一关系。 post
。
我看到两个选项:
找出在我的适配器中发出多个请求的方法。我想它会起到这样的作用:
一个。在应用代码中调用this.store.findRecord('post', id)
。
湾Ember适配器根据模型中定义的内容看到post
具有hasMany
关系。
℃。适配器生成一个url,用于查找post的id与我想要找到的id匹配的注释(很容易用Parse做)。是的,这意味着多个请求,但只有1个(每个关系)。它与Ember在Payload中有links
属性时所做的类似,但我们没有,因为Parse无法识别hasMany
关系。
寻找2件事。首先,任何关于我是否正确思考这个问题的想法,或者对其他选项的建议。其次,也许是最重要的一些想法,我可以在我的适配器中锁定什么钩子来触发第二个请求。我最初的想法是这样的:
findRecord: function(store, type, id, snapshot) {
snapshot.eachRelationship(relationship => {
// Do something to build a url for each hasMany relationship
});
return Ember.RSVP.promise(...);
}
非常感谢任何帮助。
答案 0 :(得分:0)
所以,基本上你试图覆盖ember-data的默认findRecord行为。
您当前的方法听起来是正确的。您可以创建适配器并为findRecord,findAll,query等方法提供自定义定义。
典型的代码示例可以是:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"value.floatValue > 2000"];
代码段完全含糊不清,但我希望你明白我的观点..