ember.js - Ember cli 适配器为类型设置自定义路径

标签 ember.js ember-data ember-cli

是否可以为特定类型设置自定义 url?

例如,这是我的适配器定义:

/adapters/application.js

import DS from 'ember-data';

export default DS.JSONAPIAdapter.extend({
    namespace: 'v1',
    defaultSerializer: 'JSONSerializer',
    host: 'http://api.example.com'
});

不,我想要的是为特定的适配器方法设置自定义 url。默认情况下,每个请求都将发送到 http://api.example.com/v1/{model} 但对于 store.query() 方法,例如,我想告诉 ember 请求 http://api.example.com/v1/{model}/search

谢谢

最佳答案

是的,你有 pathForType对于 JSONAPI 适配器

编辑:

它是这样工作的by default :

pathForType: function(modelName) {
    var dasherized = Ember.String.dasherize(modelName);
    return Ember.String.pluralize(dasherized);
  },

您收到模型的名称,您可以返回不同的 url。

但是,因为你想根据方法指定不同的 url,你应该使用 buildURL :

buildURL: function(modelName, id, snapshot, requestType, query) {
    switch (requestType) {
      case 'findRecord':
        return this.urlForFindRecord(id, modelName, snapshot);
      case 'findAll':
        return this.urlForFindAll(modelName);
      case 'query':
        return this.urlForQuery(query, modelName);
      case 'queryRecord':
        return this.urlForQueryRecord(query, modelName);
      case 'findMany':
        return this.urlForFindMany(id, modelName, snapshot);
      case 'findHasMany':
        return this.urlForFindHasMany(id, modelName);
      case 'findBelongsTo':
        return this.urlForFindBelongsTo(id, modelName);
      case 'createRecord':
        return this.urlForCreateRecord(modelName, snapshot);
      case 'updateRecord':
        return this.urlForUpdateRecord(id, modelName, snapshot);
      case 'deleteRecord':
        return this.urlForDeleteRecord(id, modelName, snapshot);
      default:
        return this._buildURL(modelName, id);
    }
  },

关于ember.js - Ember cli 适配器为类型设置自定义路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33894428/

相关文章:

css - EmberJS CSS 选项

javascript - 在 ember-cli 中导入依赖项(例如,导入 math.js)

javascript - Ember - 链接到 JSON 文件

javascript - Ember + Handlebars 将 Rails 验证错误渲染为 [object Object]

javascript - 从外部重新加载 Ember-Data

javascript - 我们如何使用 ember-cli 对模型混合进行单元测试

node.js - 如何在 Node.js 服务器上缓存 AWS S3 文件并根据请求提供服务?

javascript - 随意命名 Ember.js 文件

javascript - 将模型绑定(bind)到模板的控件

ember.js - Ember 数据和脏记录