2013-04-30 17 views
1

我在控制器中有一个功能。它会返回一个值。我已经使用renderer:this.getController('test.controller.Barchart').change();调用了该功能,但它不起作用。我收到一个错误风没有方法getController()。任何人都可以告诉我如何正确调用它?如何在extjs中查看调用控制器功能

+1

YOU_APP_NAME.app.getController( 'myController的') – 2013-04-30 10:45:23

回答

5

请参考下面的解决方案!

var ControllerRef=<applicationreference>.getController(<ControllerfolderPath>.controllerName); 
ControllerRef.<ControllerFunction>(); 

例子:

var MyApp = Ext.create('Ext.app.Application', { 
       ...... 
       ...... 
      }); 

var ControllerRef = MyApp.getController('general.ManagerController'); 
ControllerRef.MyFunction(); 

感谢

+2

我是否需要在视图中创建实例MyApp的?我没有定义我的应用程序 – mohan 2013-05-01 13:28:59

0

试试这个: 你可以把你的控制器作为全局变量在app.js像这样:

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

}); 

在您的控制器:

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

然后调用所需的功能,从您的视图:

MySharedData.my_Controller.my_Function(); 
5

有一个视图呼叫控制器被认为是邪恶的本质。视图永远不应该知道控制器。我是一个使用ExtJS的大型项目的负责人,除了视图的JSON描述之外,我们不允许任何视图。寻找控制器的逻辑应该可能在控制器本身中。

+1

由于我不久前学习/使用ExtJS,我有一个问题。如何在不调用控制器的情况下处理视图侦听器事件?说我有一个网格,我想执行的行选择事件控制器功能?你怎么做,如果没有从视图监听呼叫控制器? – CrazySabbath 2016-03-17 13:05:38

相关问题