Extjs在渲染前检索标签
我正在尝试加载beforerender事件上标签的文本。所以我附加了之前的事件。。。如下Extjs在渲染前检索标签,extjs,Extjs,我正在尝试加载beforerender事件上标签的文本。所以我附加了之前的事件。。。如下 { xtype: 'label', text: 'VOID', listeners: { beforerender: { fn: me.onLabelBeforeRender, scope: me } }, Ext.Ajax.request({ url: '/who', method: 'GET', p
{
xtype: 'label',
text: 'VOID',
listeners: {
beforerender: {
fn: me.onLabelBeforeRender,
scope: me
}
},
Ext.Ajax.request({
url: '/who',
method: 'GET',
params: {
id: 1
},
success: function(response){
var text = Ext.decode(response.responseText);
alert(text);
// process server response here
}
});
现在我想将标签从VOID改为/who的响应值,但是我看不出如何以一种体面的方式访问该标签。当然,我可以使用getcmp添加一个id,但是这看起来很笨拙,或者这是一种方法吗?像这样定义标签
{
xtype: 'label',
text: 'VOID',
itemId:'someLabel',
listeners: {
beforerender: {
fn: me.onLabelBeforeRender,
scope: me
}
}
现在,由于您将作用域保留为me
,我假设它是label的某个祖先,因此在onlabelbeforender
函数中,您可以通过this
关键字访问me
。因此,在该函数中,检索标签为
var label = this.down('label[itemId="someLabel"]');
label.setText('WHATEVER YOU WANT HERE');
像这样定义标签
{
xtype: 'label',
text: 'VOID',
itemId:'someLabel',
listeners: {
beforerender: {
fn: me.onLabelBeforeRender,
scope: me
}
}
现在,由于您将作用域保留为me
,我假设它是label的某个祖先,因此在onlabelbeforender
函数中,您可以通过this
关键字访问me
。因此,在该函数中,检索标签为
var label = this.down('label[itemId="someLabel"]');
label.setText('WHATEVER YOU WANT HERE');
实际上,就性能而言,id+
Ext.getCmp()
是最有效的选择。更多信息,请参阅
它肯定比添加一个侦听器要快,因为您可以得到一个健康的调用堆栈。实际上,就性能而言,id+
Ext.getCmp()
是最有效的选择。更多信息,请参阅
它肯定比添加一个监听器要快,因为您可以得到一个健康的调用堆栈