简体   繁体   中英

Why am I getting this error with my custom ember-data adapter: Cannot call method 'lookupFactory' of undefined

I am just starting out with Ember and using the docs at http://emberjs.com/api/data/classes/DS.Adapter.html to create a custom adapter for accessing a SOAP web service. When I try to access the store that uses this adapter, however, I get this error:

TypeError: Cannot call method 'lookupFactory' of undefined

Here's my code:

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');
  }
});

That documentation is a little wonky, that's if you want to set up a different store etc, but if you are wanting to use the built in store you would do it like this.

App.ApplicationAdapter = App.RMSoapAdapter;

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

And the type must be a valid DS model, it's looking up the group-mailbox and it's going to send in App.GroupMailbox, not the string.

App.GroupMailbox = DS.Model.extend({

});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM