我正在构建一个emberjs应用程序,我想调用我的REST API来获得结果。我有这段代码:
App.Post = DS.Model.extend();
App.PostAdapter = DS.RESTAdapter.extend({
namespace: 'api/v1',
host: 'http://myapp.com'
});
在控制器中我有这个
post: this.store.find('post')
问题是它始终用" s"最后添加,例如 - http://myapp.com/api/v1/posts
如何从这些来电中删除复数形式?
答案 0 :(得分:7)
您需要覆盖适配器中的pathForType
方法。
App.PostAdapter = DS.RESTAdapter.extend({
pathForType: function(type) {
var camelized = Ember.String.camelize(type);
return Ember.String.singularize(camelized);
}
});
答案 1 :(得分:2)
var inflector = new Ember.Inflector();
inflector.singularize('posts');
Ember自动放了's'。你需要强制它使用单数。上面的代码告诉Ember在您致电myapp.com/post
时请求this.store.find('post');
,否则默认行为会尝试向myapp.com/posts
发送请求
我曾经有同样的问题。我甚至找不到一种全局设置此行为的方法。我为每家商店重复了这段代码(inflector.singularize('posts');
)。