簡體   English   中英

如何在Ember.js應用程序中同時使用兩個不同的適配器?

[英]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 然后,我可以將商店注入到應用程序的routecontroller ,這將嘗試使用adapter:-ls

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM