Emberjs - 如何删除多元化的URL?

时间:2014-04-08 14:39:56

标签: ember.js

我正在构建一个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

如何从这些来电中删除复数形式?

2 个答案:

答案 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');)。