Extjs 在渲染前检索标签
Posted
技术标签:
【中文标题】Extjs 在渲染前检索标签【英文标题】:Extjs retrieve label beforerender 【发布时间】:2012-09-03 12:01:24 【问题描述】:我正在尝试在 beforerender 事件上加载标签的文本。所以我附上了 beforeender 事件...如下
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 但这似乎很笨拙,或者这就是要走的路?
【问题讨论】:
【参考方案1】:实际上,就性能而言,id + Ext.getCmp()
是最有效的选择。请参阅this question 了解更多信息。
它肯定会比添加一个监听器更快,因为你会得到一个非常健康的调用堆栈。
【讨论】:
【参考方案2】:这样定义标签
xtype: 'label',
text: 'VOID',
itemId:'someLabel',
listeners:
beforerender:
fn: me.onLabelBeforeRender,
scope: me
现在因为您将范围保持为me
,我假设这是标签的某个祖先,因此在onLabelBeforeRender
函数中,您可以通过this
关键字访问me
。所以在该函数中检索标签为
var label = this.down('label[itemId="someLabel"]');
label.setText('WHATEVER YOU WANT HERE');
【讨论】:
以上是关于Extjs 在渲染前检索标签的主要内容,如果未能解决你的问题,请参考以下文章