[英]How to use two different adapters at the same time in Ember.js application?
我為一個API使用基本適配器:
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.BasicAdapter.create()
});
可以說我需要使用REST API從其他服務檢索一些數據:
App.Store2 = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.create()
});
那么如何使用store2
? 還是有另一種解決此類問題的方法?
您可以添加兩個不同的適配器,而無需創建多個存儲。
對於灰燼2:
可以通過將適配器類放在應用程序的app / adapters / +模型名+ .js文件中來創建特定於模型的適配器。
來源: DS.Adapter類
當您需要使用其他商店時,請定義商店,然后指定要檢索的模型:
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.BasicAdapter.create()
});
App.store2 = DS.Store.create({
revision: 12,
adapter: DS.RESTAdapter.create()
});
// retrieving from custom store
var myModelObject = App.store2.find(App.MyDifferentModel, 1);
// retrieving from defaultStore is implicit for the Models defined
var post = App.Post.find(1);
希望能幫助到你
這就是我使上述示例工作的方式,請注意,我使用ember-cli
。 而不是使用DS.RESTAdapter.create()
創建商店,或者我使用DS.LSAdapter
創建了商店,我在初始化器中創建了商店,如下所示:
app.LsStore = DS.Store.extend({
adapter: '-ls',
});
app.register('store:lsstore', app.LsStore);
app.register('adapter:-ls', DS.LSAdapter);
這基本上在容器上注冊了一個lsstore
和一個adapter:-ls
。 然后,我可以將商店注入到應用程序的route
或controller
,這將嘗試使用adapter:-ls
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.