使用1.0.0-beta.10多次调用GET请求

时间:2014-09-22 18:20:02

标签: ember.js ember-data

将EmberData从1.0.0-beta.9升级到1.0.0-beta.10时,我注意到在页面的不同位置使用计算属性时,会多次发出相同的OPTIONS / GET请求。 / p>

示例代码

http://jsbin.com/moruj/1/

然后在我的请求中,我看到3个选项调用我的事件API。这不是在beta.9中发生的,所以我很好奇可能发生了什么?

2 个答案:

答案 0 :(得分:1)

在回答您的问题之前,我必须说您的问题中的代码错误。请检查并修改您的代码,以便更多人了解它。

例如在您的代码中:

/* It should be App.Customer right? */
App.CustomerModel = DS.Model.extend({});

/* should be App.CustomerIndexRoute ? */
App.CustomerIndexController = Ember.Route.extend({
  model: function(params) {
    /* it returns a promise which resolves a customer array */
    return this.store.find('customer');
  }
});

App.CustomerIndexController = Ember.Controller.extend({
  /*
   * But for a customer array you can not get events property.
   * you can only get events from a single customer.
   */
  filteredEvents: function() {
    return this.get('events').slice(0, 10);
  }.property('events')
});

对于多个事件的GET请求

无论你如何构建自己的路线&控制器代码,当您为客户迭代事件时,Ember Data会为每个未获取的事件发送请求/events/:id。您可以在适配器中设置coalesceFindRequests: true以在一个请求中加载事件,例如/events/ids[]=1&ids[]=2&ids[]=3

对于多个OPTION请求

请检查您是否使用代理将ajax请求委派给远程服务器或模拟服务器。据我所知,当您的代理无法正确委托请求时,将显示OPTION请求。在这种情况下,您可能会同时看到OPTION请求和GET请求。这不是Ember数据问题。

答案 1 :(得分:0)