但我想要的是有两家商店。是否有可能在逐条路线的基础上做到这一点?
根据设计,您永远不希望在您的应用程序中拥有多个商店。但是,存在基于每个模型拥有适配器的可能性。
这看起来像这样:
DS.Store.registerAdapter('App.LegacyModel', App.MyLegacyAdapter.extend({});
如果您有多个模型使用相同的适配器,您可以这样做:
DS.Store.registerAdapter(['App.FooModel', 'App.BarModel'], App.MyAdapter.extend({});
然后商店在发出请求时会使用模型类型对应的适配器。
您仍然可以使用以下语法为商店指定默认适配器:
App.Store = DS.Store.extend({
adapter: 'DS.RESTAdapter'
});
如果您尝试加载没有为其类型指定适配器的记录,则此默认适配器将用作后备。
是否有可能在逐条路线的基础上做到这一点?
遵循最佳实践,如果您想使用不同于按约定查找的模型(例如使用您的路线名称),您可以执行以下操作:
App.SomeRoute = Ember.Route.extend({
setupController: function(controller, model) {
controller.set('model', App.MySpecialModel.find());
}
});
另外值得一提的是,DS.FixtureAdapter
它不替换也不具有与 相同的功能集DS.RESTAdapter
,它只是为您的应用程序提供简单的模型数据,因此在适配器之间的切换在DS.FixtureAdapter
&的情况下不起作用DS.RESTAdapter
。DS.FixtureAdapter
当您还不想与后端通信时使用,但会将您的数据作为“夹具”存储在客户端中。
希望能帮助到你。