在尝试将路径模型设置为关联结果时,在Ember Data中阻止重复请求

时间:2015-09-15 23:48:08

标签: 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.modelFor('patient').get('id'),
            include: 'appointments,appointments.practitioner'
          },
          success = function(patient) {
            return patient.get('appointments');
          };

    return this.store.queryRecord('patient', query).then(success);
  }
});

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

1 个答案:

答案 0 :(得分:1)

我认为首先@Override protected void onPause() { super.onPause(); //stop or pause your music here. } 之后,您的服务器响应肯定存在问题。

I created simple Ember Twiddle that matches your example and is based on mockjax here。正如您在打开Console时所看到的那样,mockjax只收到两个请求 - 第一个用于@Override protected void onResume() { super.onResume(); // play your music here. } ,第二个用于queryRecord(您的/patient/1)。

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