我需要传递MessageBox
的实例,以便我可以在控制器内部的Ajax请求的成功函数中关闭它。这样,我就不需要为控制器添加引用来查找我的消息框了。
this.win = Ext.create('Ext.window.MessageBox',{
buttonAlign: 'left'
,buttons:[
{
text: "This Only"
,scope:this
,handler: function() {
this.fireEvent("eventName",{type:"all", // i presume my messagebox is simply passed in here, I just dont know HOW });
}
}
]
提前谢谢你!
答案 0 :(得分:0)
您需要在被触发的事件中传递引用,例如
this.fireEvent("eventName",{type:"all", this.up('window') });
您传递this.up('window')
,因为this
指的是被点击的按钮,您需要向上遍历DOM以获取父窗口。然后在您的事件中,您可以访问窗口实例作为事件中的第二个参数 - 并且可以使用它来实现(.e.g window.close();
)
n.b。我不记得你是否可以更好地使用this.up('messagebox')