我已经Ext.panel.Panel
使用了工具栏(dockedItems
)和动态创建的内容(items
)。我想仅.setLoading()
面板项目并保持工具栏处于活动状态。有没有办法选择面板项容器组件?
P.S。我可以使用myPanel.items.each(function(item) {item.setLoading()})
,但它的解决方案是错误的。
答案 0 :(得分:2)
您始终只能将加载蒙版应用于面板的主体,因此工具栏处于活动状态且可单击。
要做到这一点,操作非常简单。
您必须调用指定.setLoading()
的面板的setLoading(load, target)
,其中load是布尔值,目标是加载掩码的目标,应该类似于target = panel.body
。
根据我的回答,我为你做了一点小提琴:
https://fiddle.sencha.com/#fiddle/12h0
小提琴的代码是:
Ext.application({
name: 'Fiddle',
launch: function() {
Ext.create('Ext.panel.Panel', {
renderTo: Ext.getBody(),
border: true,
width: 200,
height: 200,
margin: 100,
id: 'myPanel',
defaults: {
margin: 10
},
layout: {
type: 'vbox',
pack: 'middle'
},
items: [{
xtype: 'textfield',
id: 'input'
}, {
xtype: 'panel',
html: 'Other things',
border: false
}],
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
items: [{
text: 'Start Loading',
listeners: {
click: function(th) {
Ext.getCmp('input').setValue('opetation');
var panel = Ext.getCmp('myPanel');
if (!panel.loading) panel.loading = true;
else panel.loading = false;
panel.setLoading(panel.loading, panel.body);
th.setText(panel.loading ? 'Stop Loading' : 'Start Loading');
}
}
}]
}]
});
}
});