gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:07:50 24 4
gpt4 key购买 nike

是否可以为特定类型设置自定义 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com