Ember.js 使用参数获取实例

Ember.js 使用参数获取实例,ember.js,ember-data,Ember.js,Ember Data,我想从服务器上获取一条记录,但同时调用它和一个参数。是否有这样一个函数是find('foo',1)和findQuery('foo','bar=)的混合体。我正在寻找以下格式的有效负载: http://example.com/foo/1?bar= 更新: 这是我最后使用的函数 findQuery: function(store, type, query) { var url = this.buildURL(type.typeKey); if (!Em.isEmpty(query.id)

我想从服务器上获取一条记录,但同时调用它和一个参数。是否有这样一个函数是
find('foo',1)
findQuery('foo','bar=)
的混合体。我正在寻找以下格式的有效负载:

http://example.com/foo/1?bar=
更新: 这是我最后使用的函数

findQuery: function(store, type, query) {
  var url = this.buildURL(type.typeKey);

  if (!Em.isEmpty(query.id)) {
    url += '/' + query.id;
    delete query.id;
  }
  return this.ajax(url, 'GET', {data:query});
}

在这种情况下,您希望将存储称为:

this.store.find('foo', {id: params.id, bar: null});
您可以覆盖适配器findQuery方法

App.ApplicationAdapter= DS.RESTAdapter.extend({

  pathForType: function(type) {
    return Ember.String.camelize(type);
  },

  findQuery: function(store, type, query) {

    var params = [];

    Object.keys(query).forEach(function (key) {
      if (key !== 'id') {

        var value = query[key],
            param = key+'=';

        if (value !== undefined && value !== null) {
          param+=encodeURIComponent(value);
        }
        params.push(param);
      }
    });
    params = params.join('&');

    var url = this.buildURL(type.typeKey);
    if (query.id) {
      url = [url, query.id].join('/');
      url = [url, params].join('?');
    } else {
      url = [url, params].join('/?');  
    }
    return this.ajax(url, 'GET');
  }


});

谢谢你的努力。我对函数进行了一些重构,但其原理是合理的。虽然查询可以工作,但ember实际上并不能很好地处理响应。可能是因为它需要一个数组,而它只得到一个对象。