如何通过单击按钮重定向到另一个视图(ExtJS 6.2)

kg7wmglp  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(146)

我将这个按钮类定义如下:

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)?

  • 谢谢-谢谢
0yycz8jy

0yycz8jy1#

按钮处理程序应该是控制器中的一个函数。然后用控制器中的方法调用redirectTo方法。
或者,您可以在按钮的处理程序中获取面板的控制器,然后从那里调用它......最好在控制器中执行此操作,这样,如果您为手机或平板电脑编写不同的视图,则每个视图都可以共享控制器。
一种显示开关面板的提琴
Same fiddle so you can see the hash change
编辑:@ltes -我写了一个小提琴,它做了你想让它做的事情。你问了一个关于两个方法的问题。对你来说,简单地回顾一下关于每一个方法的文档会快得多。
外部创建方法外部容器关闭方法
你不了解你正在使用的工具包。Ext.Create将创建一个新的对象this.getView().down和up()在层次结构中查找一个组件。如果你想替换一个面板,那么使用面板上的remove()和add()方法。你不必在添加时执行Ext.create,你可以简单地传递一个config:

panel.add({
    xtype: 'panel',
    title: 'This is my new panel',
    html: 'new panel data'
}

相关问题