Ember Data对请求使用不同的URL

时间:2014-06-21 08:50:55

标签: ember.js ember-data

我是ember.js的初学者。我试图使用ember数据进行restful api。然而,路上有一些惯例。例如App.Post.find()对应http://www.example.com/posts

但由于我的应用程序当前模式,我的所有数据列表都列在/post/list下,我该怎么办?在这里,我使用的是帖子而非帖子,而不是使用/posts,而是使用/post/list

请帮忙。

1 个答案:

答案 0 :(得分:0)

很容易改变适配器构建url的方式。您只需扩展当前适配器并覆盖构建URL的方法。在您的情况下,我正在设置应用程序适配器(意味着它将适用于所有类型)。当你提供一个特定的id时,我不确定如何构建url,但我很确定这足以让你开始,你可以从这一点开始玩字符串操作游戏。 / p>

App.ApplicationAdapter= DS.RESTAdapter.extend({
  pathForType: function(type) {
    var camelized = Ember.String.camelize(type);
    return camelized; //Ember.String.pluralize(camelized);
  },
  buildURL: function(type, id) {
    var url = [],
        host = Em.get(this, 'host'),
        prefix = this.urlPrefix();

    if (type) { url.push(this.pathForType(type)); }
    url.push('list');
    if (id) { url.push(id); }

    if (prefix) { url.unshift(prefix); }

    url = url.join('/');
    if (!host && url) { url = '/' + url; }

    return url;
  }  
});

示例:http://emberjs.jsbin.com/OxIDiVU/690/edit