我的表单上的组合框有问题。问题是,当我加载表单数据(使用form.loadRecord
)时,即使我知道模型有数据,有时组合框也是空的。
当我查看 Firebug 时,我可以看到组合框存储是在记录加载后加载的。我认为这就是原因 - 组合框存储稍后加载,然后加载记录。
这就是我设置组合框商店的方式:
//All stores have autoload:true configuration.
var possessionGroundsStore = Ext.create('path.to.store');
var vehicleTypesStore = Ext.create('path.to.store');
var usePurposesStore = Ext.create('path.to.store');
this.editView = Ext.create('path.to.view');
this.editView.getPossessionGroundsField().store = possessionGroundsStore;
this.editView.getVehicleTypeIdComboBox().store = vehicleTypesStore;
this.editView.getUsePurposeField().store = usePurposesStore;
//later
this.editView.loadRecord(record);
有没有解决这个问题的通用方法?
我现在能看到的唯一方法是store.load
在每个组合框存储中使用回调,然后在加载所有存储后执行 loadRecord,但这似乎很复杂。
有什么帮助吗?
更新:
当form.loadRecord
被调用时,它在内部调用field.setValue()
. 所以,关键是:组合框存储必须在setValue
被调用之前填充。如果商店未加载,您将看到valueField
而不是displayField
.