2014-02-08 58 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模型。不知道是否有辦法爲兩者都做一個自定義適配器;這看起來更優雅,但這種解決方案很簡單,適用於我試圖解決的一次性場景。