extjs4如何调用controller?

2024-02-28 16:58
文章标签 调用 controller extjs4

本文主要是介绍extjs4如何调用controller?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转自:http://www.tuicool.com/articles/UreQFzQ

extjs mvc动态加载controller


原文  http://peihexian.iteye.com/blog/2028035



app.js


var application;


Ext.tip.QuickTipManager.init();


Ext.Loader.setConfig({
disableCaching:true,
enabled: true
});


application =new Ext.application({
requires: [
'Ext.window.MessageBox',
'Ext.container.Viewport'
],
name: 'app',
appFolder:'js/xxx/app',
autoCreateViewport:false,
controllers: [
'frameController'
],
launch: function() {
Ext.widget("main_viewport");
}
});


function refresh4Session()
{
Ext.Ajax.request({url: GLOBAL_ROOT_PATH+'/blank.jsp'});
    setTimeout(refresh4Session,5*60*1000);//五分钟
}
refresh4Session();
Ext.define('app.controller.frameController',{
extend : 'Ext.app.Controller',
alias : 'controller.frameController',
views : ['Viewport'],
refs:[
       {ref:'tabpanel',selector:'main_viewport>tabpanel[id=tabpanel]'}
   ],
init : function(application) {
var me = this;
window.application=me.getApplication();
me.control({
'main_viewport>panel[region=west]':{
render:function(obj){
var treepanel=Ext.create('Ext.tree.Panel',{
title:'test',
autoHeight:true,
autoScroll: true,
split: true,
rootVisible:false,
lines:true,
store: Ext.create('Ext.data.TreeStore', {
        root: {
        expanded: true,
        children: [
                  {text: '菜单名称', page: 'xxxxInfo_List', controller_full_class_name:'app.controller.xxxxInfo',leaf: true},
                  {text: '菜单名称', page: 'xxxxLevel_List',controller_full_class_name:'app.controller.xxxxLevel',leaf: true}
        ]
        }
}),
listeners: {
        'itemclick': function(view, record){
        if (!Ext.ClassManager.isCreated(record.raw.controller_full_class_name)) {
me.getApplication().getController(record.raw.controller_full_class_name);
                           }
if(record.isLeaf()){
    var id = 'tab-' + record.internalId;
    var center =  me.getTabpanel();//view.up('viewport').down('tabpanel');
    var tab = center.queryById(id);
    if(!tab){
    tab = center.add(Ext.widget(record.raw.page, {itemId: id, title: record.get('text'),closable : true}));
    }
    center.setActiveTab(tab);
    }
       }
}
});
obj.items.add(treepanel);
}
}
});
}
 
 });
上面的代码中,实现动态加载controller的最核心的其实就是


if (!Ext.ClassManager.isCreated(record.raw.controller_full_class_name)) {
                               me.getApplication().getController(record.raw.controller_full_class_name);
                           }
其他的就是mvc的正常的东西,比较简单了。


这篇关于extjs4如何调用controller?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756065

相关文章

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

python如何调用java的jar包

《python如何调用java的jar包》这篇文章主要为大家详细介绍了python如何调用java的jar包,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录一、安装包二、使用步骤三、代码演示四、自己写一个jar包五、打包步骤六、方法补充一、安装包pip3 install

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

C#通过进程调用外部应用的实现示例

《C#通过进程调用外部应用的实现示例》本文主要介绍了C#通过进程调用外部应用的实现示例,以WINFORM应用程序为例,在C#应用程序中调用PYTHON程序,具有一定的参考价值,感兴趣的可以了解一下... 目录窗口程序类进程信息类 系统设置类 以WINFORM应用程序为例,在C#应用程序中调用python程序

Spring Boot Controller处理HTTP请求体的方法

《SpringBootController处理HTTP请求体的方法》SpringBoot提供了强大的机制来处理不同Content-Type​的HTTP请求体,这主要依赖于HttpMessageCo... 目录一、核心机制:HttpMessageConverter​二、按Content-Type​处理详解1.

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run