2014-02-08 43 views
1

我的模型大部分遵循Ember Data预期的标准命名约定。我抵消了所有请求:获取余烬数据以调整每个模型的URL

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

但其他方面很标准。当我有一个API结构,比如我在测量单位周围的时候,就会出现异常。在这种情况下,我有三个相关的端点:uoms,uom-systemsuom-contexts

它们被引用的方式(例如使用目的GET,同样适用于其它CRUD操作):

  • GET /计量单位
  • GET /计量单位/系统
  • GET /计量单位/上下文

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

回答

0

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

  1. 偏移的命名空间适当地(在我的例子,这意味着api/uoms
  2. 缩短/重命名目标模型名称(在我的例子uomSystems需求是systems

下面的代码:

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模型。不知道是否有办法为两者都做一个自定义适配器;这看起来更优雅,但这种解决方案很简单,适用于我试图解决的一次性场景。