我有一个窗户。在那个窗口中,我有一个带有商店的组合框。我想屏蔽窗口,直到商店完成加载数据。我可以通过在加载前在 store 中写入 this.setLoading(true) 并在加载时写入 this.setLoading(false) 来实现。
但是当我使用上述方法时,在点击组合触发器后会显示蒙版。这意味着商店在点击触发器后正在加载。而不是我想在初始化窗口时加载商店
我怎样才能做到这一点?
最简单的方法是将queryMode设置为'local'并将triggerAction 设置为'query'。这甚至不再清除商店过滤器。但请注意,即使查询中止, beforequery事件仍将被触发。
这是一个配置示例:
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose',
store: myStore,
queryMode: 'local',
triggerAction: 'query',
displayField: 'name',
valueField: 'id'
});
这是正常的行为。当您单击触发器时 - 正在加载商店。您可以通过处理beforeload存储事件来取消加载。你可以做这样的事情:
var form = this.getForm();
var store = this.getStore();
store.load({
callback: function(records, operation, success) {
form.show();
}
});
store.on('beforeload', function() {return false; })