使用参数获取实例

时间:2014-05-07 18:49:54

标签: 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)) {
    url += '/' + query.id;
    delete query.id;
  }
  return this.ajax(url, 'GET', {data:query});
}

1 个答案:

答案 0 :(得分:0)

在这种情况下,您希望将商店称为:

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');
  }


});

http://emberjs.jsbin.com/linup/2/edit