zoukankan      html  css  js  c++  java
  • Extjs4.1.x 框架搭建 采用 Application 动态按需加载 MVC 各模块完美实现

    摘自 : http://www.jb51.net/article/31928.htm

     1  // 动态加载js模块,****重要
     2 
     3 var application;
     4 
     5        Ext.Loader.setConfig({ enabled: true });
     6 
     7        Ext.require([
     8 
     9        'Ext.app.Application',
    10 
    11        'Ext.app.Controller'
    12 
    13 ]);
    14 
    15  
    16 
    17 Ext.app.Controller.implement({
    18 
    19        //MVC 加载模型
    20 
    21        loadModel: function () { },
    22 
    23        //MVC 加载视图
    24 
    25        loadView: function () { },
    26 
    27        getApplication: function () {
    28 
    29               return this.application;
    30 
    31        }
    32 
    33 });
    34 
    35  
    36 
    37 Ext.app.Application.implement({
    38 
    39        //MVC 加载控制器 param {String/Array} controllers
    40 
    41        loadModule: function ( controllers ) {
    42 
    43               var me = this;
    44 
    45               var controllers = Ext.Array.from(controllers), ln = controllers.length, i, controller;
    46 
    47               for (i = 0; i < ln; i++) {
    48 
    49                      var name = controllers[i];
    50 
    51                      if (!this.controllers.containsKey(name)) {
    52 
    53                             controller = Ext.create(
    54 
    55                                    this.getModuleClassName(name, 'controller'), {
    56 
    57                                    application: this,
    58 
    59                                    id: name
    60 
    61                             });
    62 
    63                             this.controllers.add(controller);
    64 
    65                             // 优先加载模型
    66 
    67                             controller.loadModel();
    68 
    69                             controller.init(this);
    70 
    71                             controller.onLaunch(this);
    72 
    73                             //动态构建视图 & 绑定模型数据
    74 
    75                             controller.loadView();
    76 
    77                      }
    78 
    79               }
    80 
    81        }
    82 
    83 });
    84 
    85 /*****END************/

    在调用时:

     1         /*
     2 
     3        写法一:
     4 
     5        application.loadModule("Users");
     6 
     7        //var module = application.getController("Users");
     8 
     9        //var viewName = module.views[1];
    10 
    11        //alert(viewName);
    12 
    13        //var view = module.getView("user.List");或者是viewName
    14 
    15        //var panel = view.create();
    16 
    17        //Global.ExtTabDoLayout(panel);
    18 
    19        写法二:
    20 
    21        var main = new Ext.Panel({
    22 
    23        border: false,
    24 
    25        layout: 'fit',
    26 
    27        items: [{
    28 
    29        xtype: 'userlist'
    30 
    31        }]
    32 
    33        });
    34 
    35        Global.ExtTabDoLayout(main);
    36 
    37        */
    38 
    39        application.loadModule("Org");
    40 
    41  
    42 
    43        var main = new Ext.Panel({
    44 
    45               border: false,
    46 
    47               layout: 'border',
    48 
    49               items: [{ xtype: 'OrgTree' }, { xtype: 'OrgUserGrid' }]
    50 
    51        });
    52 
    53        //添加到tab里
    54 
    55        Global.ExtTabDoLayout(main); 
  • 相关阅读:
    利用后退按钮进行重复提交的解决办法。
    运用上传拦截器时遇到的一个问题
    Fckeditor上传图片的错误
    关于分页的一些经验。
    spring在web工程中的运用
    引入js失败的可能原因
    hql执行update行为时可能遇到的一个问题。
    Eclipse下freemarker插件的安装
    同名文本框与同名复选框在传值上的不同.
    spring在java工程中的运用
  • 原文地址:https://www.cnblogs.com/livon/p/3398751.html
Copyright © 2011-2022 走看看