Ember Data RESTAdapter:矩阵参数可能吗?

时间:2015-06-12 05:26:17

标签: rest ember.js ember-data

从我的Ember应用程序中,我必须调用一些REST API,它只支持URL中的矩阵参数(由';'分隔),并且不支持更多经典查询参数(由'?'和'&amp;'分隔)。< / p>

我使用的是Ember Data 1.0.0-beta.15。

默认情况下,当我调用store.find()时,使用查询参数构建请求URL。是否有任何配置方法来指示RESTAdapter(我相信这是我的情况下要配置的组件)来应用矩阵参数?

谢谢! 安德烈

1 个答案:

答案 0 :(得分:0)

最后我的决定是覆盖findQuery()方法如下:

export default DS.RESTAdapter.extend({

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

      Object.keys(query).forEach(function(queryParamName) {
        if (queryParamName.toString() !== 'matrix') {
          url += ';' + queryParamName + '=' + query[queryParamName];
        }
      });

      return this.ajax(url, 'GET', { data: {} }); //originally was '{ data: query }'
    } else {
      return this._super(store, type, query);
    }
  }
}

我介绍了一个专门的&#39;矩阵&#39;查询参数是可选的,可以通过路由设置,并指示需要带有矩阵参数的URL。如上所述,&#39;矩阵&#39;查询参数被findQuery()方法拦截,不会转到服务器。