为什么我的自定义ember-data适配器出现此错误:无法调用未定义的方法'lookupFactory'

时间:2013-12-03 02:31:12

标签: ember.js ember-data

我刚开始使用Ember并使用http://emberjs.com/api/data/classes/DS.Adapter.html处的文档来创建用于访问SOAP Web服务的自定义适配器。但是,当我尝试访问使用此适配器的商店时,我收到此错误:

TypeError: Cannot call method 'lookupFactory' of undefined

这是我的代码:

App = Ember.Application.create();

App.RMSoapAdapter = DS.Adapter.extend({

    find: function(store, type, id) {
        switch(type) {
        case 'group-mailbox':
            return getGroupMailboxForStore(id, store);
            break;
        default:
            throw 'Unknown object type: ' + String(type);
            break;
        }
    }
});

App.store = DS.Store.create({
  adapter: App.RMSoapAdapter.create(),
});


App.IndexRoute = Ember.Route.extend({
  model: function() {
    var store = App.store;
      return store.find('group-mailbox');
  }
});

1 个答案:

答案 0 :(得分:2)

该文档有点不稳定,如果你想设置一个不同的商店等,但如果你想使用内置商店,你会这样做。

App.ApplicationAdapter = App.RMSoapAdapter;

App.IndexRoute = Ember.Route.extend({
  model: function() {
      return this.store.find('group-mailbox');
  }
});

类型必须是有效的DS模型,它正在查找group-mailbox并且它将在App.GroupMailbox中发送,而不是字符串。

App.GroupMailbox = DS.Model.extend({

});