如何从按钮点击重定向到另一个视图(ExtJS 6.2)
How to redirect to another view from button click (ExtJS 6.2)
我有这个按钮 class 定义如下:
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);
}]
});
我将其与另一个 class 中定义的其他组件(组成主视图)一起嵌入到面板视图中。
我的问题是 this.redirectTo('main', true);
不起作用。如何使用定义按钮的主视图的右侧“this”进行重定向(比如 Mine.view.Main)?
Q2:如何从按钮的处理程序调用父视图(Mine.view.Main)?
谢谢。
按钮处理程序应该是控制器中的一个函数。控制器中的方法,然后调用 redirectTo 方法。
或者您可以在按钮的处理程序中获取面板的控制器并从那里调用它....最好在控制器中执行此操作,因此如果您为 phone 或平板电脑的每个视图编写不同的视图可以共享控制器。
A fiddle showing switching panels
Same fiddle so you can see the hash change
编辑:@ltes - 我写了一个 fiddle 做了你想让它做的事。你问了一个关于两种方法的问题。简单地查看这些方法中的每一种方法的文档会更快。
Ext.create method
Ext.Container down method
您不了解您正在使用的工具包。 Ext.Create 将创建一个新对象 this.getView()。向下和向上() 在层次结构中查找组件。如果要替换面板,请在面板上使用 remove() 和 add() 方法。你不必在添加时执行 Ext.create 你可以简单地传递一个配置:
panel.add({
xtype: 'panel',
title: 'This is my new panel',
html: 'new panel data'
}
我有这个按钮 class 定义如下:
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);
}]
});
我将其与另一个 class 中定义的其他组件(组成主视图)一起嵌入到面板视图中。
我的问题是 this.redirectTo('main', true);
不起作用。如何使用定义按钮的主视图的右侧“this”进行重定向(比如 Mine.view.Main)?
Q2:如何从按钮的处理程序调用父视图(Mine.view.Main)?
谢谢。
按钮处理程序应该是控制器中的一个函数。控制器中的方法,然后调用 redirectTo 方法。
或者您可以在按钮的处理程序中获取面板的控制器并从那里调用它....最好在控制器中执行此操作,因此如果您为 phone 或平板电脑的每个视图编写不同的视图可以共享控制器。
A fiddle showing switching panels
Same fiddle so you can see the hash change
编辑:@ltes - 我写了一个 fiddle 做了你想让它做的事。你问了一个关于两种方法的问题。简单地查看这些方法中的每一种方法的文档会更快。
Ext.create method Ext.Container down method
您不了解您正在使用的工具包。 Ext.Create 将创建一个新对象 this.getView()。向下和向上() 在层次结构中查找组件。如果要替换面板,请在面板上使用 remove() 和 add() 方法。你不必在添加时执行 Ext.create 你可以简单地传递一个配置:
panel.add({
xtype: 'panel',
title: 'This is my new panel',
html: 'new panel data'
}