ExtJS:仅为 Ext.panel.Panel 项容器设置加载掩码
ExtJS: Set loading mask only for Ext.panel.Panel items container
我有 Ext.panel.Panel
工具栏 (dockedItems
) 和动态创建的内容 (items
)。我只想 .setLoading()
面板项目并保持工具栏处于活动状态。有没有办法 select 面板项容器组件?
P.S。我可以使用 myPanel.items.each(function(item) {item.setLoading()})
,但我觉得它的解决方案很糟糕。
您始终只能将加载蒙版应用于面板主体,因此工具栏处于活动状态且可单击。
做这个操作很简单。
您必须调用指定 setLoading(load, target)
的面板的 .setLoading()
,其中 load 是一个布尔值,目标是加载掩码的目标,应该类似于 target = panel.body
.
根据我的回答我做了一点fiddle给你:
https://fiddle.sencha.com/#fiddle/12h0
fiddle的代码是:
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');
}
}
}]
}]
});
}
});
我有 Ext.panel.Panel
工具栏 (dockedItems
) 和动态创建的内容 (items
)。我只想 .setLoading()
面板项目并保持工具栏处于活动状态。有没有办法 select 面板项容器组件?
P.S。我可以使用 myPanel.items.each(function(item) {item.setLoading()})
,但我觉得它的解决方案很糟糕。
您始终只能将加载蒙版应用于面板主体,因此工具栏处于活动状态且可单击。
做这个操作很简单。
您必须调用指定 setLoading(load, target)
的面板的 .setLoading()
,其中 load 是一个布尔值,目标是加载掩码的目标,应该类似于 target = panel.body
.
根据我的回答我做了一点fiddle给你:
https://fiddle.sencha.com/#fiddle/12h0
fiddle的代码是:
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');
}
}
}]
}]
});
}
});