Ember.js 在尝试将路由模型设置为关联结果时,防止Ember数据中出现重复请求
我有一个路径,需要获取父路径中不可用的关联数据,因此我需要基本上重新加载模型,并在这个过程中向JSONAPI提供include指令以嵌入其他模型。所以路线是这样的Ember.js 在尝试将路由模型设置为关联结果时,防止Ember数据中出现重复请求,ember.js,ember-data,json-api,Ember.js,Ember Data,Json Api,我有一个路径,需要获取父路径中不可用的关联数据,因此我需要基本上重新加载模型,并在这个过程中向JSONAPI提供include指令以嵌入其他模型。所以路线是这样的 import Ember from 'ember'; // route for patients/1/appointments export default Ember.Route.extend({ model: function() { const query = { id: this.mode
import Ember from 'ember';
// route for patients/1/appointments
export default Ember.Route.extend({
model: function() {
const query = {
id: this.modelFor('patient').get('id'),
include: 'appointments,appointments.practitioner'
},
success = function(patient) {
return patient.get('appointments');
};
return this.store.queryRecord('patient', query).then(success);
}
});
成功回调是第二次获取约会,这也许并不奇怪,但它似乎也应该知道它在本地商店中有这些约会。所以,我正在尝试解决一种合理的方法,将模型设置为一组返回的约会模型。出于各种原因,我们不希望此特定请求的逻辑存在于适配器中,因为(例如)在获得患者预约时,我们可能并不总是需要医生端加载。有什么想法吗?我认为在第一次
查询记录之后,服务器的响应肯定有问题
。当您打开Console时可以看到,mockjax只收到两个请求—第一个请求是/patient/1
,第二个请求是/patients?..
(您的查询记录)
即使我正在呈现与当前患者相关的所有预约,mockjax也不会得到任何其他关系查询。您可以查看我为mockjax提供的JSON响应。您应该将它们与您的API进行比较,看看它们的结构是否不同。我最终通过使用过滤器直接查询约会端点来解决这个问题。为提供一个工作实例而做出的巨大努力的答案。也许它会帮助别人。谢谢