Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 使用1.0.0-beta.10多次调用请求_Ember.js_Ember Data - Fatal编程技术网

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

Ember.js 使用1.0.0-beta.10多次调用请求,ember.js,ember-data,Ember.js,Ember Data,当将EmberData从1.0.0-beta.9升级到1.0.0-beta.10时,我注意到在页面的不同位置使用计算属性时,会多次发出相同的选项/GET请求 示例代码 然后在我的请求中,我看到了对我的events API的3个选项调用。这在beta.9中没有发生,所以我很好奇可能发生了什么?在回答您的问题之前,我必须说您问题中的代码是错误的。请检查并修改您的代码,以便更多的人能够理解它 例如,在您的代码中: /* It should be App.Customer right? */ App.

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

示例代码


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

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

例如,在您的代码中:

/* 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

对于多个选项请求
请检查是否使用代理将ajax请求委托给远程服务器或模拟服务器。据我所知,当您的代理无法正确委托请求时,将出现选项请求。在这种情况下,您可能会同时看到一个选项请求和一个GET请求。这不是灰烬数据问题。

看起来这是合法的,但在beta.10中


您的路线是什么样的?您是否正在使用
this.store.find('someModel')
?是的。我正在做
这个.store.find('customer')
这就是为什么。。。我认为
find
总是发送请求。尝试仅在父级(资源路由)中使用
find
,而在索引路由(或实际显示数据的任何路由)中使用
all
。嗯,我不确定是否遵循。我收到的多个请求不是来自/customers API,而是来自/events API。所以最后我得到了一个客户,但我得到了3个对我的events API的请求-这将是6,因为3个选项/3得到:(很抱歉!我已经将代码替换为jsbin。就是这样。删除了我的答案,因为我可能误解了这个答案的问题+1