尝试为DS.Store创建自定义适配器时断言失败

时间:2013-09-02 20:04:01

标签: ember.js ember-data

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

  

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

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

执行此操作的新/正确方法是什么?

3 个答案:

答案 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