2014-03-14 33 views
1

我有一個API,其資源爲/api/resource。我可以用this.store.find(...)調用訪問那個,因爲我已經設置了一個擴展適配器的名稱空間apiEmber數據:在路由中使用不同的商店

現在我想也訪問相同的資源,但這次在/admin/resource的URL下。我認爲這將是最容易做的與新適配器有一個命名空間admin而不是api

例子:

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

App.AdminAdapter = DS.ActiveModelAdapter.extend({ 
    namespace: 'api/admin' 
}); 

App.AdminStore = DS.Store.create({ 
    adapter: App.AdminAdapter 
}); 

如何我現在可以訪問我的路線的AdminStore

我看了DS.Store documentation page但是這個例子並不是很清楚。當我找出如何爲每個應用程序使用多個商店時,我會很樂意向文檔提交請求。

我知道有一個SO question with same title但答案不幫助我。

+1

嘗試尋找了每種類型的適配器,使每個資源可以有不同的適配器實例瓦特/不同的命名空間。 – pixelhandler

回答

0

由於pixelhandler在評論中提到,我可以使用Per Type Adapter。我在TRANSITION文檔上找到關於它的文檔ember-datahere

我最終什麼事做的只是指定適配器類型有不同的命名空間,像這樣

App.AdminModelAdapter = DS.ActiveModelAdapter.extend({ 
    namespace: 'api/admin' 
}); 

App.AdminModel = DS.Model.extend({ 
    slug: DS.attr('string') 
}); 
相關問題