Ember.js 将RestaAdapter配置为不为get/list请求设置.json扩展名
我使用的是跨域RESTAPI。 我已经定义了自定义REST适配器来触发API。 Pb将删除ember模型自动设置的“.json” 如何配置适配器以避免设置“替换函数”(url=url.replace('.json','');) 如何配置适配器以避免设置“替换函数”(url=url.replace('.json','');) 由于ember模型不提供任何配置选项来更改此行为,IMHO通过执行Ember.js 将RestaAdapter配置为不为get/list请求设置.json扩展名,ember.js,ember-model,Ember.js,Ember Model,我使用的是跨域RESTAPI。 我已经定义了自定义REST适配器来触发API。 Pb将删除ember模型自动设置的“.json” 如何配置适配器以避免设置“替换函数”(url=url.replace('.json','');) 如何配置适配器以避免设置“替换函数”(url=url.replace('.json','');) 由于ember模型不提供任何配置选项来更改此行为,IMHO通过执行url=url.replace('.json','')来更改您的解决方案没有那么糟糕 我能想到的另一种可能的
url=url.replace('.json','')来更改您的解决方案代码>没有那么糟糕
我能想到的另一种可能的方法是重新打开RESTAdapter
,并覆盖buildURL
函数以不包含.json
Ember.RESTAdapter.reopen({
buildURL: function(klass, id) {
var urlRoot = Ember.get(klass, 'url');
if (!urlRoot) { throw new Error('Ember.RESTAdapter requires a `url` property to be specified'); }
if (!Ember.isEmpty(id)) {
return urlRoot + "/" + id;
} else {
return urlRoot;
}
}
});
但是,如果原始代码发生更改,并且您想要更新lib,那么您必须同时更改覆盖,这并不是未来的证明
希望有帮助。Tx,听起来不错。但是它返回一个错误(未捕获引用错误:未定义get)@fvisticot,抱歉,编辑了答案,应该是Ember.get
Ember.RESTAdapter.reopen({
buildURL: function(klass, id) {
var urlRoot = Ember.get(klass, 'url');
if (!urlRoot) { throw new Error('Ember.RESTAdapter requires a `url` property to be specified'); }
if (!Ember.isEmpty(id)) {
return urlRoot + "/" + id;
} else {
return urlRoot;
}
}
});