3

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

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

为什么这不能正常工作?

4

1 回答 1

1

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

var s =

基本上,当您创建Ext.define('StoreName',{params_with_Model})存储对象时,您创建了一个名为 StoreName 的关联模型。但是,您还没有将其注册为 xtype,您可以稍后再制作对象(实际上我什至不确定您是否可以这样做)。

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

于 2013-04-10T18:57:48.263 回答