【发布时间】:2013-01-02 12:31:28
【问题描述】:
我在EXTJS MVC 中找到了实现组件侦听器的方法。但我找不到在控制器上为网格插件添加侦听器的方法。
【问题讨论】:
标签: model-view-controller controller extjs4.1 addeventlistener
我在EXTJS MVC 中找到了实现组件侦听器的方法。但我找不到在控制器上为网格插件添加侦听器的方法。
【问题讨论】:
标签: model-view-controller controller extjs4.1 addeventlistener
不确定它是否可以帮助你,我自己现在直接使用 ComponentQuery 来检索当前编辑的字段..检查它..
ExtJS 4 - How to listen event of each field within roweditor inside controller
【讨论】:
下面的例子对我有用。也就是说,我现在可以在我的控制器中处理插件事件。由于我正在开发自定义插件,而您使用的是打包插件,因此您的方法会有所不同。我认为您应该扩展您想要使用的插件,从我的示例中添加“mixins”和“relayEvents”概念。您还可以为您正在使用的插件创建覆盖。
Ext.define( "Ext.ux.MyController", {
extend: "Ext.app.Controller",
init: function() {
this.control( {
"mycomponentxtype": {
"load": function(){ ... },
"unload": function(){ ... }
}
} )
}
} );
Ext.define( "Ext.ux.MyPlugin", {
extend: "Ext.AbstractPlugin",
alias: "plugin.myplugin",
mixins: [
"Ext.util.Observable"
],
config: {
...
},
init: function( myComponent ) {
var me = this;
// contruction of the mixin is required.
me.mixins["Ext.util.Observable"].constructor.call( me );
myComponent.relayEvents( me, [ "load", "unload" ] );
.
.
.
}
} );
尽管最初的问题来自 2013 年初。我在 2014 年年中来到这篇文章寻找适当的答案,但没有找到。这基本上就是我解决问题的方式。希望对你有帮助!
【讨论】:
已经回答了这个问题,虽然专门针对 rowEditing 插件,但它应该适用于任何插件: Ext JS 4 - How to control rowEditor inside controller
【讨论】: