2013-04-08 109 views
3

我是EXTJS 4 MVC架构的新手。我在控制器中有一个功能,我想从我的视图中调用。我怎样才能调用该功能?来自EXTJS 4视图的呼叫控制器方法4 MVC

+0

你应该调用函数你的控制器不是你的观点。即所有的逻辑应该在控制器中,而不是在视图中。你的代码是什么样的? – cclerville 2013-04-08 05:11:06

回答

0

您可以发送信息:YourApp.fireEvent('my_event', options)并在控制器内部收听。但这是不对的。

如果你正在使用的话mvc你不应该写代码。 (注意:可能有代码,例如列渲染器代码,而不是业务逻辑)。视图应该只是一个组件组。要创建组件事件侦听器,请使用控件 Ext.app.Controller的方法。

+0

从视图向控制器传递事件是正确的方法。你如何在视图和控制器之间进行交流? – catalinux 2013-04-15 03:37:29

+0

正如我已经写道:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.app.Controller-method-control – Damask 2013-04-15 07:26:04

+0

好的。我明白你的观点。当你想与你自己的控制器交谈时会发生这种情况。否则,您可以在应用程序或特殊巴士活动上发起活动。发射事件是正确的方法。从视图直接调用控制器是不好的方法。 – catalinux 2013-04-15 17:58:52

0

你能做到像这样:
你可以把你的控制器在app.js像这样的全局变量:

Ext.define('MySharedData', { 
    my_Controller:Object 

}); 

在你的控制器:

MySharedData.my_Controller=this.getController('<ControllerfolderPath>.controllerName'); 

然后调用你想要的功能,从你的角度来看:

MySharedData.my_Controller.my_Function();