首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用一个Ember适配器发出多个请求?

如何使用一个Ember适配器发出多个请求?
EN

Stack Overflow用户
提问于 2016-01-17 00:36:00
回答 1查看 253关注 0票数 0

我正在构建一个以解析为后端的Ember应用程序。开箱即用,用关系做一些奇怪的事情,- they只能用一种方式工作。//我一直在试图通过在Ember中保存两个模型来手动地使关系双向工作,但这看起来很混乱,可能意味着数据很容易不同步。糟透了。所以现在我在寻找替代方案。

首先,让我更详细地解释一下。

假设我有一个postcomments。解析将存储来自comments -> post的关系,但不是相反的。或者,我可以在“指针数组”中管理comments列表,但不能管理comments -> post的一对一关系。

我认为有两种选择:

  1. 使用他们的云码平台修改API的工作方式。这可能是比较容易的路由,但是我宁愿用Ember来解决这个问题,这样我就可以为遇到这个问题的其他人开放我的适配器/序列化程序。
  2. 想出一种在我的适配器中发出多个请求的方法。我想应该是这样的: this.store.findRecord('post', id)在应用程序代码中被调用。 b.烬适配器看到post有一个基于模型中定义的hasMany关系。 适配器生成一个url,该url查找帖子的id与我试图找到的注释(使用Parse非常容易)匹配的注释。是的,这意味着多个请求,但仅多一个请求(每个关系)。这与Ember在有效载荷中有一个links属性时所做的类似,但是我们没有这一点,因为Parse不识别hasMany关系。

找两样东西。首先,任何关于我是否正确地考虑到这一点的想法,或者关于其他选择的建议。其次,也可能是最重要的一点,我可以在适配器中锁定哪些钩子来触发第二个请求。我最初的想法是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
findRecord: function(store, type, id, snapshot) {
  snapshot.eachRelationship(relationship => {
    // Do something to build a url for each hasMany relationship
  });

  return Ember.RSVP.promise(...);
}

这方面的任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2016-01-18 13:43:27

因此,基本上,您试图覆盖默认的findRecord行为的成员-数据。

你现在的方法听起来不错。您可以创建适配器并为方法(如findRecord、findAll、query等)提供自定义定义。

典型的代码示例可以是:

代码语言:javascript
代码运行次数:0
运行
复制
findRecord(store, type, id, snapshot) {
    let data = {};
    const traditional = true;


    return new Ember.RSVP.hash({
        news: Ember.$.ajax({ url: wpUrl + 'post', dataType: "jsonp", type: 'GET' }),
        events: Ember.$.ajax({ url: wpUrl + 'comments', dataType: "jsonp", type: 'GET' })
    });
});

代码片段是完全模糊的,但我希望你明白我的意思。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34833803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档