我有ExtJS(4.2)app,我有一个带有一些逻辑的模态窗口。我想通过几个控制器分割逻辑。例如,我有控制器A,我在其中添加了关闭窗口的控件等等,在这个窗口中我还有另一个逻辑,例如某个窗体,有自己的按钮用于保存和编辑。对于表单我想添加新的控制器,但我不知道它是好还是坏?,当我应该初始化控制器的形式?
感谢。
摘要申请
Modal Window (has close button, and some other controls)
- Items Box
- Item (has own controls)
For Modal Window there is Controller
Item this is xtype which is added dynamically
我想要两个控制器,一个用于模态窗口(父级),一个用于项目(子级)。而且我不知道从父母那里初始化第二个控制器有多好。
答案 0 :(得分:0)
为项目的每个视图(MVVM)添加控制器是一种很好的做法。我喜欢做的是添加一个带有全局方法的控制器,它应该适用于我拥有的每个视图,所以在这种情况下你可以使用mixins:
Ext.define('MyApp.view.MyPanel.MyPanelViewController', {
extend: 'Ext.app.ViewController',
alias: 'controller.mypanel',
mixins: {
GlobalController: 'MyApp.controller.GlobalController'
},
control: {
...
}
...
});
这样您就可以使用ViewController中全局控制器中的所有方法。
答案 1 :(得分:0)
我认为最好的方法是在'view'的initComponent()函数中初始化控制器。假设您的模态窗口有A,B和C控制器,并且您的应用程序名为“App”,在模态窗口的initComponent()函数中,您可以一次加载控制器:
initComponent: function () {
......
App.getController("A"); App.getController("B"); App.getController("C");
......
}