刚刚升级到ember1.0和最新的余烬数据。现在当我尝试创建我的商店时,我收到了这个错误。
断言失败:您尝试将
adapter
属性设置为DS.Adapter
的实例,其中应该是名称或工厂
App.Store = DS.Store.extend({
revision: 12,
adapter: adapter.create()
});
执行此操作的新/正确方法是什么?
答案 0 :(得分:6)
在Ember Data 1.0.beta.1中,您不必再从DS.Store
延伸。只需从DS.Model
和适配器DS.RESTAdapter
扩展您的模型。如果您根据以下命名约定命名模型和适配器(以及序列化程序),则它们会自动连接。
App.Post = DS.Model.extend({
// ...
});
App.PostAdapter = DS.RESTAdapter.extend({
// ...
});
另请参阅Ember Data 1.0.beta.1转换参考:https://github.com/emberjs/data/blob/master/TRANSITION.md#per-type-adapters
答案 1 :(得分:2)
你在某个地方:
adapter = MyAdapter.create();
...
App.Store = DS.Store.extend({
revision: 12,
adapter: adapter.create()
});
你必须自己传递这个类:
App.Store = DS.Store.extend({
revision: 12,
adapter: MyAdapter
});
因此,ember将能够在MyAdapter中注入容器。
答案 2 :(得分:0)
试试这个:
App.MyFancyAdapter = DS.RESTAdapter.extend();
App.Store = DS.Store.extend({
adapter: 'MyFancy'
});
基本上,您使用名称减去“Adapter”的字符串引用您的适配器。见https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/store.js#L117