我试图制作动态配置的模型存储工作。
如果我只使用商店,它会起作用;
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
});
但是,如果我介绍一个模型,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
});
Firebug的错误;字段未定义。我试图使用构造函数分离存储和模型在单独的文件(典型的Ext JS 4 MVC)中并跟踪每个变量是否正确;同样的错误。
提前致谢。
答案 0 :(得分: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
});
有关详细信息,请参阅this。