商店需要在自身或代理上定义模型

时间:2012-12-18 13:48:09

标签: sencha-touch sencha-touch-2

当我在控制台窗口中执行此操作时:

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

为什么这不能正常工作?

1 个答案:

答案 0 :(得分:1)

我可以问你为什么要创建一个新的商店对象吗?当您使用Ext.define时,您在技术上已经在Sencha中创建了一个可用于存储所有数据的Store对象。为什么需要创建

var s =

基本上,当您创建Ext.define('StoreName',{params_with_Model})时,您创建了一个商店对象,并使用名为StoreName的关联模型。但是,你没有将它注册为xtype,然后你可以从以后创建对象(实际上我甚至不确定你能做到这一点)。

但是,在Sencha中创建新变量时,您没有创建Store类型“StoreName”的对象。相反,您尝试创建具有相同名称的第二个商店。这与第一个完全无关,因此Sencha期望您像Ext.define一样提供模型和数据。