在执行findQuery emberjs和ember数据时,取消对api的现有调用

时间:2014-06-20 15:04:35

标签: javascript ember.js ember-data

我有一个输入字段可以进行实时搜索。它被设置为每次按键时它都会执行一个store.findQuery来激活api请求。我注意到使用它时我需要在执行每个新的findQuery时取消对api的挂起的ajax调用。由于搜索查询已更改,最终会出现与请求无关的负载。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

没有内置方法可以做到这一点。对于此类用途,ajax调用本身不会返回给您。我建议去除你的查找请求,以避免发出大量无用的请求。

App.IndexController = Em.Controller.extend({
  foo:undefined,
  callsToSearch: 0,
  actualSearch: 0,
  watchFoo: function(){
    this.incrementProperty('callsToSearch');
                  //context, method,     time that must elapse before calling method
    Em.run.debounce(this, this.doSearch, 300);
  }.observes('foo'),
  doSearch: function(){
    this.incrementProperty('actualSearch');
    // do the actual search here
  }
});

http://emberjs.jsbin.com/ciyebaqo/1/edit