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