小编Lou*_*uis的帖子

扩展ExtJS 4 MVC应用程序中的控制器

我按照MVC结构构建我的ExtJS 4应用程序.我想制作一个可扩展的网格MyGrid,它具有一些我可以重复使用的功能.因此,我猜,它应该有自己的控制器,它也是扩展的,因此功能是继承的.这怎么做得好?

在下面的代码中,我将说明如何使用MyExtendedGrid扩展控制器MyGrid.我意识到我正在覆盖MyGrid控制器中的init函数,因此它永远不会被调用.问题是通过从MyExtendedGrid init调用MyGrid中的"super" init来解决问题,还是合并控制对象?这是在MVC精神中这样做的正确方法吗?如果是这样,怎么样?

controller/MyGrid.js:

Ext.define('App.controller.MyGrid', {
    extend: 'Ext.app.Controller',
    refs: [
        {
            ref: 'myGridView',
            selector: 'mygrid'
        }
    ],
    init: function() {
        var me=this;
        me.control({
            'mygrid textfield[name=searchField]': {
                change: function() {
                    var view = me.getMyGridView();
                    // Do something with view
                }
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

controller/MyExtendedGrid.js:

Ext.define('App.controller.MyExtendedGrid', {
    extend: 'App.controller.MyGrid',
    views: [
        'grids.MyExtendedGrid'],
    refs: [
        {
            ref: 'myExtendedGridView',
            selector: 'myextendedgrid'
        }
    ],
    init: function() {
        var me=this;
        me.control({
            'myextendedgrid': {
                // Some control code …
Run Code Online (Sandbox Code Playgroud)

extjs4 extjs-mvc

9
推荐指数
1
解决办法
6236
查看次数

标签 统计

extjs-mvc ×1

extjs4 ×1