获取ember数据以调整每个模型的URL

时间:2014-02-08 15:27:25

标签: ember.js ember-data

我的大多数模型都遵循Ember Data期望的标准命名约定。我用以下内容抵消了所有请求:

App.ApplicationAdapter = DS.RESTAdapter.extend({
  namespace: 'api'
});

但其他相当标准。当我有一个类似于测量单位的API结构时会出现异常。在这种情况下,我有三个相关的端点:uomsuom-systemsuom-contexts

引用它们的方式是(使用GET作为示例目的,同样适用于其他CRUD操作):

  • GET / uoms
  • GET / uoms / systems
  • GET / uoms / contexts

如何在这些情况下告诉Ember数据在正确的位置?

1 个答案:

答案 0 :(得分:0)

好了,用小挖周围,我想出了一个答案,以我自己的问题。好消息......这很容易做到。所有你需要做的就是创建一个自定义的适配器,它做了两两件事:

  1. 适当地偏移的命名空间(在我的例子,装置api/uoms
  2. 缩短/重命名目标型号名称(在我的例子uomSystems需要为systems
  3. 以下是代码:

    App.UomSystemAdapter = DS.RESTAdapter.extend({
        namespace: 'api/uoms',
        pathForType: function(type) {
            // gets rid of leading "uom" and pluralizes like normal
            return Ember.String.pluralize(type).substr(3); 
        }
    });
    

    此实例可与所需UomContext模型中没有代码改变被重复。不知道是否有一种方法可以做两个单定制适配器;这似乎更优雅,但这种解决方案很简单,适用于一次性的场景我想解决的问题。