ExtJS中Controller类的动态加载.

参考:http://stackoverflow.com/questions/7725911/dynamically-manage-ext-app-application-controllers

目录结构参考Ext经典目录,此处不在截图。

1,打开Ext的动态加载机制,在app.js首部加入如下代码:


Ext.Loader.setConfig({enabled: true});
2,确保已经定义Controller类,比如定义一个叫Menu的Controller。方法如下



$touch app/controller/Menu.js && vi app/controller/Menu.js
Menu.js:
Ext.define('Appname.controller.Menu', {
    extend: 'Ext.app.Controller',      // leave it as it is
    models: ['Event','User'],          // this assumes App.model.* prefix
    stores: ['Options','Permissions'], // this assumes App.store.* prefix
    views:  ['menu.Bar','SmartButton'],// this assumes App.view.* prefix
    requires: [
        'App.whatever.other.class',    // auto-load this class as a dependency
        'WidgetsLibrary.*',            // auto-load all classes in WidgetsLibrary
    ],

    init: function(){}

 // [...]
3. 动态加载。方法如下:



Ext.require(                   
    'App.controller.Menu',     // this auto-loads all dependencies 
    function(){ 
        // ... as soon as this class 
        //    and all its dependencies have loaded...
        var controller = Ext.create('App.controller.Menu');  // create an instance
        controller.init();                                   // launch init() method
    }
);

如果需要判断,是否已经加载Menu。可使用

if(Ext.ClassManager.isCreated('App.controller.Menu')){
    // ... controller has already been loaded and init ... 
}else{
    // we need to auto-load that controller using Ext.require()
}
更多内容:

api: http://docs.sencha.com/extjs/4.2.0/#!/api/Ext-method-require

程序结构: http://docs.sencha.com/extjs/4.2.0/#!/guide/application_architecture


转载于:https://my.oschina.net/ethling/blog/131182

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值