Ext jS 4:Store-Model组合; 动态配置字段

vto*_*vto 1 extjs extjs4

我试图做一个动态配置的模型存储工作.

如果我只使用商店它会工作;

    var gridStore = Ext.create('Ext.data.JsonStore', {
        fields: modelTableStructure['fieldsModel'],
        proxy: {
            type:'ajax',
            url: Ext.ux.db.vars.urlGetTableData,
            actionMethods: {
                read: 'POST'
            },
            extraParams:{
                servidorSql: serverConfig.servidorSql,
                dbLogin: serverConfig.dbLogin,
                dbPass: serverConfig.dbPass,
                db:db,
                tabla:tabla
            }
        },
        autoLoad: true
    });
Run Code Online (Sandbox Code Playgroud)

但如果我介绍一个模型它WONT工作;

    var gridModel = Ext.create('Ext.data.Model',{
        fields: modelTableStructure['fieldsModel']
    });

    var gridStore = Ext.create('Ext.data.JsonStore', {
        model: gridModel,
        proxy: {
            type:'ajax',
            url: Ext.ux.db.vars.urlGetTableData,
            actionMethods: {
                read: 'POST'
            },
            extraParams:{
                servidorSql: serverConfig.servidorSql,
                dbLogin: serverConfig.dbLogin,
                dbPass: serverConfig.dbPass,
                db:db,
                tabla:tabla
            }
        },
        autoLoad: true
    });
Run Code Online (Sandbox Code Playgroud)

萤火虫的错误; 字段未定义.我试图使用构造函数分离存储和模型在单独的文件(典型的Ext JS 4 MVC)中并跟踪每个变量是否正确; 同样的错误.

提前致谢.

Rya*_*yan 5

您必须使用Ext.define模型定义,因为Ext.create当新的"记录"添加到商店时,商店将执行模型.您已经假设该模型已经定义了字段Ext.create('myGridModel',{}).

例如,

    Ext.define('myGridModel', {
        extend: 'Ext.data.Model',
        fields: modelTableStructure['fieldsModel']
    });

    var gridStore = Ext.create(Ext.data.Store, {
        model: 'myGridModel',
        // other config options below
    });
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅