在ExtJS中,可以通过几种方式将ViewController事件处理程序的this
设置为视图。下面是一些常用的方法:
bind
方法:可以使用bind
方法将事件处理程序的this
绑定到视图上。例如,假设我们有一个按钮的点击事件处理程序,可以在ViewController中使用以下代码将this
设置为视图:Ext.define('MyApp.view.MyViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.myview',
onButtonClick: function() {
// 在这里可以使用this引用视图
this.getView().doSomething();
},
init: function() {
this.control({
'button': {
click: this.onButtonClick.bind(this) // 使用bind方法将this绑定到视图
}
});
}
});
推荐的腾讯云相关产品和产品介绍链接地址:腾讯云 ExtJS
this
,而是继承父级作用域的this
。因此,可以使用箭头函数将事件处理程序的this
设置为视图。以下是示例代码:Ext.define('MyApp.view.MyViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.myview',
onButtonClick: () => {
// 在这里可以使用this引用视图
this.getView().doSomething();
},
init: function() {
this.control({
'button': {
click: this.onButtonClick
}
});
}
});
推荐的腾讯云相关产品和产品介绍链接地址:腾讯云 ExtJS
Ext.bind
方法:Ext.bind
方法可以将函数绑定到指定的作用域。可以使用Ext.bind
方法将事件处理程序的this
设置为视图。以下是示例代码:Ext.define('MyApp.view.MyViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.myview',
onButtonClick: function() {
// 在这里可以使用this引用视图
this.getView().doSomething();
},
init: function() {
this.control({
'button': {
click: Ext.bind(this.onButtonClick, this) // 使用Ext.bind方法将this绑定到视图
}
});
}
});
推荐的腾讯云相关产品和产品介绍链接地址:腾讯云 ExtJS
这些方法可以确保在事件处理程序中使用this
引用视图,并且可以在ExtJS中正确处理事件。
领取专属 10元无门槛券
手把手带您无忧上云