【问题标题】:Ember Data RESTAdapter: are matrix parameters possible?Ember Data RESTAdapter:矩阵参数可能吗?
【发布时间】:2015-06-12 05:26:17
【问题描述】:

从我的 Ember 应用程序中,我必须调用一些 REST API,它仅支持 URL 中的矩阵参数(用“;”分隔),不支持更经典的查询参数(用“?”和“&”分隔)。

我使用 Ember Data 1.0.0-beta.15。

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

谢谢! 安德烈

【问题讨论】:

  • 您能提供一个示例网址吗?以前从未见过矩阵参数

标签: rest ember.js ember-data


【解决方案1】:

最后我的决定是重写 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);
    }
  }
}

我介绍了一个专用的“矩阵”查询参数,它是可选的,可以通过路由设置,它表示需要带有矩阵参数的 URL。正如您在上面看到的,'matrix' 查询参数被 findQuery() 方法拦截,并且不会发送到服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    相关资源
    最近更新 更多