我将这个按钮类定义如下:
Ext.define('Mine.view.buttons', {
extend: 'Ext.container.Container',
alias: 'widget.MyClass',
requires: [
'Mine.view.Main',
'Mine.view.newDashboard'
],
xtype: 'myclass',
items: [{
xtype: 'button',
html: '<img src=\"../../iDeviceMap.png\" width="76" height="76"/>',
text: '',
width: 76,
height: 76,
handler: function() {
this.redirectTo('main', true);
}]
});
我把它和其他类中定义的组件(组成主视图)沿着嵌入到Panel视图中。我的问题是this.redirectTo('main', true);
不起作用。如何用定义按钮的主视图(比如Mine.view.Main)的右“this”进行重定向?Q2:如何从按钮的处理程序中调用父视图(Mine.view.Main)?
- 谢谢-谢谢
1条答案
按热度按时间0yycz8jy1#
按钮处理程序应该是控制器中的一个函数。然后用控制器中的方法调用redirectTo方法。
或者,您可以在按钮的处理程序中获取面板的控制器,然后从那里调用它......最好在控制器中执行此操作,这样,如果您为手机或平板电脑编写不同的视图,则每个视图都可以共享控制器。
一种显示开关面板的提琴
Same fiddle so you can see the hash change
编辑:@ltes -我写了一个小提琴,它做了你想让它做的事情。你问了一个关于两个方法的问题。对你来说,简单地回顾一下关于每一个方法的文档会快得多。
外部创建方法外部容器关闭方法
你不了解你正在使用的工具包。Ext.Create将创建一个新的对象this.getView().down和up()在层次结构中查找一个组件。如果你想替换一个面板,那么使用面板上的remove()和add()方法。你不必在添加时执行Ext.create,你可以简单地传递一个config: