2

刚刚升级到 ember1.0 和最新的 ember-data。现在,当我尝试创建我的商店时,我收到了这个错误。

断言失败:您尝试将adapter属性设置为 的实例DS.Adapter,它应该是名称或工厂

App.Store = DS.Store.extend({
    revision: 12,
    adapter: adapter.create()
});

这样做的新/正确方法是什么?

4

3 回答 3

6

在 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

于 2013-09-03T20:57:00.280 回答
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 中注入容器。

于 2013-09-02T20:15:08.700 回答
0

尝试这个:

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

于 2013-09-02T21:30:38.273 回答