extjs mvc模式中Viewport加载方式

1.首先介绍extjs mvc代码结构示意图

控制层:

Ext.define('urp.controller.RoleController',{

       extend: 'Ext.app.Controller',

       stores: [ 'Roles' ],

       models: [ 'Role' ],

       views: [ 'role.Edit', 'role.List', 'role.Insert'], // 红色role是目录的名字

       refs: [ {

              ref: 'rolelist',

              selector: 'rolelist'

       }],

 

 

2. 介绍MVC执行顺序

Controller (导入所需js)-> viewport (使用controller导入的js)->

 

在控制层载入所有js,MVC不会重复加载js

stores : [ 'Roles' ],

models : [ 'Role' ],

views : [ 'role.Edit', 'role.List' ,'role.Insert']

ps:cntroller方面负责加载各个组件,但不负责加载Viewport组件

Viewport组件的加载由extjs 框架负责,代码片段如下:

这是jsp获取html中的代码片段

$.application({
                name: 'urp',
                autoCreateViewport: !0,
                controllers: [
                    'IniController','UserController'
                ]
            });

当autoCreateViewport设置为true时表示框架自动创建Viewport组件,其中创建的过程如下:

在ext-all-debug.js中代码片段如下

  if (this.autoCreateViewport) {
            requires.push(this.getModuleClassName('Viewport', 'view'));
        }

getModuleClassName的实现方式如下:

getModuleClassName: function(name, module) {  
        
        if (name.indexOf('.') !== -1 && (Ext.ClassManager.isCreated(name) || Ext.Loader.isAClassNameWithAKnownPrefix(name))) {
            return name;
        } else {
            
            return this.name + '.' + module + '.' + name; / /this.name为application中设置的name,比如当前的例子就是:urp
        }
    }



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值