通常情况下,ExtJS组件/对象是通过将配置对象传递给它的构造函数来构造的。JavaScript对象构造
this.serviceFiltersPanel = new Ext.FormPanel({
title: 'some title',
layout:'anchor',
buttonAlign: 'left',
buttons: [
{
xtype: 'button',
text: 'Click Me',
handler: function() {
// How do I get a reference to the FormPanel
// under construction here?
});
}
]
});
有没有什么办法让从按钮处理程序内正在兴建的FormPanel
对象的引用?
我假设'formPanel'只在构造函数完成执行后才被赋值。你能解释为什么需要将FormPanel分配给两个变量?换句话说,为什么我不能像问题那样将它分配给'serviceFiltersPanel',然后在处理程序中引用该变量? –
@Don,它仅在那里可用,因为它是一个全局变量。而且你是正确的,但处理程序无论如何都是在构造之后调用的,并且变量存在于全局中,因此它可以读取它。 – Esailija
@Don,构造函数在按钮处理程序运行之前完成执行方式。您只需将(未执行)按钮处理程序传递给构造函数。至于为什么我将它保存在一个单独的变量中,这是因为在处理程序内'this'将引用不同的东西,所以使用'this.serviceFiltersPanel'将不起作用。 – Domenic