当我在控制台窗口中执行此操作时:
var s = new Ext.data.Store('MyApp.store.Genders');
我收到以下错误:
除非您通过元数据定义模型,否则商店需要在自身或代理上定义模型
然而,我的商店实际上已经定义了一个模型:
Ext.define('MyApp.store.Genders', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.Lookup',
'Ext.data.proxy.Rest'
],
config: {
autoLoad: true,
model: 'MyApp.model.Lookup',
storeId: 'GenderStore',
proxy: {
type: 'rest',
url : '/api/lookup/genders',
reader: {
type: 'json'
}
}
}
});
为什么这不能正常工作?
答案 0 :(得分:1)
我可以问你为什么要创建一个新的商店对象吗?当您使用Ext.define
时,您在技术上已经在Sencha中创建了一个可用于存储所有数据的Store对象。为什么需要创建
var s =
基本上,当您创建Ext.define('StoreName',{params_with_Model})
时,您创建了一个商店对象,并使用名为StoreName的关联模型。但是,你没有将它注册为xtype,然后你可以从以后创建对象(实际上我甚至不确定你能做到这一点)。
但是,在Sencha中创建新变量时,您没有创建Store类型“StoreName”的对象。相反,您尝试创建具有相同名称的第二个商店。这与第一个完全无关,因此Sencha期望您像Ext.define
一样提供模型和数据。