我正在尝试在Ember中使用多个商店,因为我在api方面有命名空间的模型.
阿卡
App.Gl.Account = DS.Model.extend //Needs to route to /gl/accounts App.Company = DS.Model.extend //Routes to /companies
我的第一个想法是定义一个命名空间
App.Gl = Ember.Namespace.create({}); //and a store App.Gl.Store = DS.Store.extend({adapter:DS.RESTAdapter({namespace:'gl'})}); App.Store = DS.Store.extend({adapter:DS.RESTAdapter})
问题是模型被自动绑定到App.Store.
关于如何完成命名空间模型的其他建议将是有帮助的.我甚至不需要它们在客户端js上命名空间,只要有一个简单的方法为每个单独的模型指定命名空间
解决方法
您不应该在Ember应用程序中拥有多个存储.
相反,您可以注册特定类型的适配器:
App.Store.registerAdapter('App.Post',DS.RESTAdapter.extend({ // implement adapter; in this case url: "/gl" }));
您可能希望使用RESTAdapter作为起点,除非您有特定的需求,并且愿意使用(仍在发展中的)适配器API来弄脏和弄脏.