我刚开始使用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');
}
});
答案 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({
});