我的应用程序有一个带有三个组合框的表单。 组合框存储在ViewModel中。
Ext.define('app.ComboboxsModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.comboboxsmodel',
stores: {
storeA:{
model:'AModel',
autoLoad:true,
actionMethods:{
read:'POST'
},
proxy: {
type: 'ajax',
url: 'php/url',
reader:{
type:'json',
rootProperty: 'data',
successProperty: 'success'
}
}
},
storeB:{
model:'BModel',
autoLoad:true,
actionMethods:{
read:'POST'
},
proxy: {
type: 'ajax',
url: 'php/url',
reader:{
type:'json',
rootProperty: 'data',
successProperty: 'success'
}
}
},
storeC:{
...
}
});
有效。数据被加载到组合框中。
问题是加载速度很慢。 上一个组合框的数据大约需要5秒才能加载。
如果不是在viewmodel中声明商店,而是将商店放在app store文件夹中,并在Apllication.js文件中引用它们按预期更快地工作。
但是,我打算使用ViewModel。
有没有办法加载 - 或在加载表单之前 - 使用viewmodel加载商店(组合框项目)?
编辑:
Comboboxs小提琴:https://fiddle.sencha.com/#fiddle/vqe
COMMENT:
更好地解释这个问题:
问题不在这个阶段,但是当我在网格中编辑记录并且我想以形式为comboboxs(config'name')的形式加载记录数据时。
如果将配置valudeField'name_id'替换为'name'加载速度更快,但仍然很慢。
但是,在服务器端(PHP),对于组合框,我最好使用id(主键)。
name: 'name',
displayField: 'name',
valueField: 'name_id',