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

相关文章

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建