registerAdapter:为不同类型注册不同的适配器

时间:2013-01-29 20:55:25

标签: ember.js ember-data

我正在尝试为不同类型使用不同的适配器。 RESTAdapter和FixtureAdapter。通常,我们可以为特定类型注册不同的适配器,例如:

DS.Store.registerAdapter('App.Foo', DS.FixtureAdapter.extend());

App.store = DS.Store.create({
    revision: 11,
    //adapter: 'DS.FixtureAdapter'   
    adapter: DS.RESTAdapter.create();
    })
});

然而,尽管使用ember-data提供的测试建议使用不同的适配器用于不同类型的设置完全相同,但这似乎不起作用。

test("Adapters can be registered on a per-type basis", function() {
  expect(2);

  var Store = DS.Store.extend(),
      Post = DS.Model.extend(),
      Comment = DS.Model.extend();

  Store.registerAdapter(Post, DS.Adapter.extend({
    find: function(store, type, id) {
      strictEqual(type, Post, "Post adapter was used to find Post record");
    }
  }));

  var store = Store.create({
    adapter: DS.Adapter.extend({
      find: function(store, type, id) {
        strictEqual(type, Comment, "default adapter is used to find Comment");
      }
    })
  });

1 个答案:

答案 0 :(得分:1)