我正在尝试在beforerender事件上加载标签的文本。所以我附上了之前的事件......如下所示
{
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的响应值但是我没有看到如何以合适的方式访问该标签。当然我可以添加一个id使用getcmp但是这看起来很笨拙,还是要走的路?
答案 0 :(得分:1)
实际上,就性能而言,id + Ext.getCmp()
是最有效的选择。有关详情,请参阅this question。
它肯定会比添加一个监听器更快,为此你得到一个非常健康的调用堆栈。
答案 1 :(得分:0)
像这样定义标签
{
xtype: 'label',
text: 'VOID',
itemId:'someLabel',
listeners: {
beforerender: {
fn: me.onLabelBeforeRender,
scope: me
}
}
现在因为您将范围保持为me
,我假设它是标签的祖先,所以在onLabelBeforeRender
函数中,您可以通过me
关键字访问this
。所以在该函数中将标签检索为
var label = this.down('label[itemId="someLabel"]');
label.setText('WHATEVER YOU WANT HERE');