繁体   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