刚刚升级到 ember1.0 和最新的 ember-data。现在,当我尝试创建我的商店时,我收到了这个错误。
断言失败:您尝试将
adapter
属性设置为 的实例DS.Adapter
,它应该是名称或工厂
App.Store = DS.Store.extend({
revision: 12,
adapter: adapter.create()
});
这样做的新/正确方法是什么?
刚刚升级到 ember1.0 和最新的 ember-data。现在,当我尝试创建我的商店时,我收到了这个错误。
断言失败:您尝试将
adapter
属性设置为 的实例DS.Adapter
,它应该是名称或工厂
App.Store = DS.Store.extend({
revision: 12,
adapter: adapter.create()
});
这样做的新/正确方法是什么?
在 Ember Data 1.0.beta.1 中,您不再需要扩展DS.Store
。只需扩展您的模型 fromDS.Model
和您的适配器 From 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
你在某个地方:
adapter = MyAdapter.create();
...
App.Store = DS.Store.extend({
revision: 12,
adapter: adapter.create()
});
您必须通过课程本身:
App.Store = DS.Store.extend({
revision: 12,
adapter: MyAdapter
});
因此 ember 将能够在 MyAdapter 中注入容器。
尝试这个:
App.MyFancyAdapter = DS.RESTAdapter.extend();
App.Store = DS.Store.extend({
adapter: 'MyFancy'
});
基本上,您使用适配器名称减去“适配器”的字符串来引用适配器。见https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/store.js#L117