2

我有一个路由,我需要获取父路由中不可用的关联数据,因此我需要基本上重新加载模型,并在此过程中为 JSONAPI 提供包含指令以嵌入其他模型。所以路线看起来像这样。

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);
  }
});

成功回调是第二次获取约会,这可能并不奇怪,但它似乎也应该知道它在本地商店中有这些约会。因此,我正在尝试解决一种合理的方法来将模型设置为返回的约会模型集。由于各种原因,我们不希望此特定请求的逻辑存在于适配器中,因为(例如)我们可能并不总是需要在获得患者预约的任何时候加载从业者端。有任何想法吗?

4

1 回答 1

1

我认为您在 first 之后从服务器的响应肯定有问题queryRecord

我创建了与您的示例匹配的简单 Ember Twiddle,并且基于 mockjax here。正如您在打开控制台时看到的那样,mockjax 只收到两个请求 - 第一个是 for /patient/1,第二个是 for /patients?...(your queryRecord)。

即使我正在呈现与当前患者关系的所有约会,mockjax 也没有得到任何其他关系查询。您可以查看我为 mockjax 提供的 JSON 响应。您应该将它们与您的 API 进行比较,以查看其结构是否不同。

于 2015-09-17T09:49:14.230 回答