我在控制器中有一个功能。它将返回一个值。我使用renderer:this.getController('test.controller.Barchart').change();
在视图中调用了该函数,但它无效。我收到错误风没有方法getController()
。谁能告诉我怎么称呼它?
答案 0 :(得分:6)
视图调用控制器被认为是邪恶的本质。视图永远不应该知道控制器。我是使用ExtJS的大型项目的领导者,除了视图的JSON描述之外,我们不允许在视图中使用任何内容。寻找控制器的逻辑可能应该在控制器本身。
答案 1 :(得分: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 :(得分:0)
试试这个: 您可以将控制器作为全局变量放在app.js中,如下所示:
Ext.define('MySharedData', {
my_Controller:Object
});
在您的控制器中:
MySharedData.my_Controller=this.getController('<ControllerfolderPath>.controllerName');
然后从您的视图中调用您想要的功能:
MySharedData.my_Controller.my_Function();