【发布时间】:2015-10-07 20:50:59
【问题描述】:
注意:我对 javascript 完全一无所知。
我已将我的 ExtJS 4.1 MVC 应用程序分解为几个控制器,例如:
/app/controller/Auth
| |Quiz
| |Result
| |Blah...
|model/...
我想通过调用我的Auth 和@987654324 中的函数 来响应“事件”,而不是DOM 事件,而是Ext.form.action.Submit.success 事件@控制器。第一部分的总结代码在这里:
// File: app/controller/Auth.js
attemptLogin : function() {
var form = Ext.ComponentQuery.query('#loginpanel')[0].form;
if (form.isValid()) {
form.submit({
success : function(form, action) {
// THIS IS THE FUNCTION FROM THE CURRENT CONTROLLER
Assessor.controller.Auth.prototype.finishLogin();
// THIS IS THE FUNCTION FROM THE OTHER CONTROLLER
Assessor.controller.Quiz.prototype.setupAssessment();
},
这可行,但感觉不对。有没有合适的方法来做到这一点?似乎我应该触发一个由两个控制器监听的独特事件,但我不明白如何使用Ext.Event 来做到这一点。有什么指导吗?
谢谢!我非常感谢所有伟大的想法和建议。
【问题讨论】:
-
我会使用应用程序事件总线。这就是谷歌为 GWT 所做的。基本上,监听应用程序上的事件。在应用程序上触发事件。
标签: events extjs controller