gpt4 book ai didi

ExtJS 4-如何在不同 View 中从某个 Controller 调用函数

转载 作者:行者123 更新时间:2023-12-05 00:43:19 25 4
gpt4 key购买 nike

我有一个 Controller 中描述的功能。该函数负责创建我需要在不同情况下从不同角度使用的表单。是否有可能,从我需要的 View 中调用此函数的方式是什么,而无需在每个 Controller 中添加相同的代码。

这是 Controller 的代码,我尝试使用其他 Controller 的方法:

Ext.define('MY.controller.EventsController', {
extend: 'Ext.app.Controller',
models: [
'EventsRecord'],

stores: [
'Events'],

views: [
'EventsGrid'],
refs: [{
ref: 'EventsGrid',
selector: 'CalendarEvent'
}],

init: function () {
this.control({
'CalendarEvent': {
afterEditFinish: this.askForNotify,
deleteEvent: this.deleteEvent,
calendarEditFunc: this.calendarEditFunc,
addCalendarEvent: this.addCalendarEvent,
itemclick: this.onSelectEnableBtn
}
})

},

在这里,我尝试使用类似 var contr = Ext.getController('SomeController');和..nothing的东西。
askForNotify: function(editor, e) {...

最佳答案

使用singleton: true使其成为全局类的一部分,并可以从代码中的任何位置访问它。仅从 View 调用 Controller 方法有点违反MVC范式...

更新:如果您确实无法更改现有代码,请执行以下操作。

节省对您的应用程序的引用(假定您已将应用程序定义为以下内容:

Ext.application({

launch: function() {
_myAppGlobal = this;
}
});

使用此变量获取所需的 Controller :
_myAppGlobal.getController('MyController');

关于ExtJS 4-如何在不同 View 中从某个 Controller 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com