如何使用 Ember 适配器发出多个请求
How do I make multiple requests with an Ember adapter?
我正在构建一个以Parse作为后端的Ember应用程序。开箱即用的解析对关系做了一些奇怪的事情——它们只以一种方式工作。:/我一直在尝试通过将两个模型保存在 Ember 中来手动使关系双向工作,但这似乎很混乱,可能意味着数据很容易不同步。呸。所以现在我正在寻找替代方案。
首先,让我更详细地解释一下。
假设我有一个post
和comments
.Parse 将存储来自 comments
-> post
的关系,但不会存储相反。或者,我可以管理"指针数组"中的comments
列表,但不能管理来自 comments
-> post
的一对一关系。
我看到两个选项:
- 使用其云代码平台修改 API 的工作方式。这可能是更简单的途径,但我宁愿在 Ember 中解决这个问题,这样我就可以为遇到此问题的其他人开源我的适配器/序列化程序。
-
找出一种在我的适配器中发出多个请求的方法。我想它会像这样工作:
一个。
this.store.findRecord('post', id)
在应用代码中调用。b. 余烬适配器根据模型中定义的内容看到
post
具有hasMany
关系。三.适配器生成一个 url,用于查找帖子 id 与我试图查找的 id 匹配的评论(使用 Parse 很容易做到)。是的,这意味着多个请求,但只有 1 个请求(每个关系)。这类似于 Ember 在有效负载中有
links
属性时所做的,但我们没有,因为 Parse 无法识别hasMany
关系。
寻找两件事。首先,关于我是否正确考虑这个问题的任何想法,或对其他选择的建议。其次,可能也是最重要的,关于我可以在我的适配器中锁定什么钩子以触发第二个请求的一些想法。我最初的想法是这样的:
findRecord: function(store, type, id, snapshot) {
snapshot.eachRelationship(relationship => {
// Do something to build a url for each hasMany relationship
});
return Ember.RSVP.promise(...);
}
非常感谢对此的任何帮助。
所以,基本上你试图覆盖默认的 findRecord for ember-data 的行为。
您目前的方法听起来是正确的。您可以创建适配器并为 findRecord、findAll、query 等方法提供自定义定义。
一个典型的代码示例可以是:
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' })
});
});
代码片段完全模糊,但我希望你明白我的意思。
- 在ajax请求中使用jquery获取javascript响应UJS
- 将 jQuery UI 日期选择器与异步 AJAX 请求一起使用
- 在 Google 云端硬盘 API 请求中使用参数
- 在jQuery中的GET请求中使用发送按钮
- 在post请求中使用mongodb插入多个文档
- API请求在使用phonegap调试时不工作,但在模拟器中工作,为什么
- 400错误请求仅使用AngularJs,与jQuery一起使用
- 如何在 ajax 请求中使用承诺对强制数据
- 如何查找是否所有 ajax 请求都已完成,并且每个请求都使用 Javascript 和/或 JQuery 将数据从服务器
- 节点 JS HTTP 请求不使用 http 请求
- 内部服务器错误在 post 请求中使用 Angular js 中的自定义服务
- 在第二个请求中使用 oauth 令牌 - NODEJS
- 无法在 pjax 请求上使用 jQuery 操作 HTML 元素
- 不能在 AngularJs 混合应用程序上的 youtube api v3 的发布请求中使用访问令牌
- 在 Ajax 请求中使用同步
- 更改 jQuery 请求期间使用的 IP
- 轨道获取请求无法使用角度正常工作
- 节点.js代理请求并使用 AES 对其进行加密
- 使用 mySQL、Php 和 JS,我如何请求 dans 使用我在数据库中的数据
- 如何使jQuery JSON请求并使用响应数据来更改html元素值