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