[英]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.