濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > Extjs4.1.x 框架搭建 采用Application動(dòng)態(tài)按需加載MVC各模塊完美實(shí)現(xiàn)

Extjs4.1.x 框架搭建 采用Application動(dòng)態(tài)按需加載MVC各模塊完美實(shí)現(xiàn)

熱門標(biāo)簽:電話機(jī)器人廣告話術(shù) 東莞語音電銷機(jī)器人排名 使用智能電話機(jī)器人違法嗎 太原外呼電銷機(jī)器人費(fèi)用 保山電話外呼管理系統(tǒng)怎么用 淘寶地圖標(biāo)注如何做 蘇州銷售外呼系統(tǒng)預(yù)算 朝陽市地圖標(biāo)注 外呼系統(tǒng)用員工身份證
中午的時(shí)候發(fā)了第一篇 Extjs4.1.x 框架搭建 采用Application動(dòng)態(tài)按需加載MVC各模塊 ,發(fā)現(xiàn)實(shí)現(xiàn)上還是有問題,有很多理解不到位的地方,晚上詳細(xì)解決下了,終于實(shí)現(xiàn)MVC各模塊按需加載了,哈皮。

上篇文章中,關(guān)于ExtJs這個(gè)玩意的評(píng)論就跟java和.Net那個(gè)好一樣,既然上了賊船,就難下了,而且對(duì)于企業(yè)級(jí)的應(yīng)用我個(gè)人覺得Extjs框架還是不錯(cuò)的,尤其是沒有UI設(shè)計(jì)的團(tuán)隊(duì)(苦逼的程序員就兼UI吧),起碼難得發(fā)現(xiàn)一個(gè)做的比較好的UI框架(國產(chǎn)的miniUI貌似看的過去,其他的就有點(diǎn)扯淡了[什么EasyUI、Dojo、JqueryUI等等]),2年前選擇了Extjs2.0之后收費(fèi)了,停了一段時(shí)間,后面做了比較久的Ext.Net(主要是開發(fā)效率高),現(xiàn)在還是轉(zhuǎn)回了ExtJs4,又到了起點(diǎn),悲吹....干吧!

扯遠(yuǎn)了,回歸正題:中午的時(shí)候碰到一個(gè)問題,控件的事件被注銷了,思索了下考慮是application重新創(chuàng)建覆蓋主框架的問題,那么也就是說整個(gè)系統(tǒng)只能采用一個(gè)application,那么如何動(dòng)態(tài)的加載controller呢?只要?jiǎng)討B(tài)的加載了controller,其他的view、store等都會(huì)被一次加載。


首先我們需要定義一個(gè)公共方法讓application加載controller
復(fù)制代碼 代碼如下:

//動(dòng)態(tài)加載js模塊,****重要
var application;
Ext.Loader.setConfig({ enabled: true });
Ext.require([
'Ext.app.Application',
'Ext.app.Controller'
]);
Ext.app.Controller.implement({
//MVC 加載模型
loadModel: function () { },
//MVC 加載視圖
loadView: function () { },
getApplication: function () {
return this.application;
}
});
Ext.app.Application.implement({
//MVC 加載控制器 param {String/Array} controllers
loadModule: function (controllers) {
var me = this;
var controllers = Ext.Array.from(controllers), ln = controllers.length, i, controller;
for (i = 0; i ln; i++) {
var name = controllers[i];
if (!this.controllers.containsKey(name)) {
controller = Ext.create(
this.getModuleClassName(name, 'controller'), {
application: this,
id: name
});
this.controllers.add(controller);
// 優(yōu)先加載模型
controller.loadModel();
controller.init(this);
controller.onLaunch(this);
//動(dòng)態(tài)構(gòu)建視圖 綁定模型數(shù)據(jù)
controller.loadView();
}
}
}
});
/*****END************/

OK,看整個(gè)的"組織架構(gòu)的"js結(jié)構(gòu)如下(真的是很多,真的是很蛋疼):
 
當(dāng)我們單擊功能節(jié)點(diǎn)樹的"組織架構(gòu)"的時(shí)候,開始加載Controller的Org.js,是的只需要加載這一個(gè)就可以了,其他的他會(huì)自動(dòng)加載,也是MVC的優(yōu)點(diǎn):
復(fù)制代碼 代碼如下:

@{
ViewBag.Title = "組織架構(gòu)管理";
}
script>
/*
寫法一:
application.loadModule("Users");
//var module = application.getController("Users");
//var viewName = module.views[1];
//alert(viewName);
//var view = module.getView("user.List");或者是viewName
//var panel = view.create();
//Global.ExtTabDoLayout(panel);
寫法二:
var main = new Ext.Panel({
border: false,
layout: 'fit',
items: [{
xtype: 'userlist'
}]
});
Global.ExtTabDoLayout(main);
*/
application.loadModule("Org");
var main = new Ext.Panel({
border: false,
layout: 'border',
items: [{ xtype: 'OrgTree' }, { xtype: 'OrgUserGrid' }]
});
//添加到tab里
Global.ExtTabDoLayout(main);
/script>

這樣整個(gè)組織架構(gòu)的頁面搭建就實(shí)現(xiàn)了,而且是按需加載本模塊的,各個(gè)事件不會(huì)沖突。
具體的代碼太多了見附件。
這還沒開始寫業(yè)務(wù)邏輯呢,就這么蛋疼了寫了這一堆的js文件,看來整個(gè)架構(gòu)完成,哥哥我非死即傷( ⊙o⊙ )哇
您可能感興趣的文章:
  • Node.js模塊加載詳解
  • AngularJs動(dòng)態(tài)加載模塊和依賴注入詳解
  • node.js使用require()函數(shù)加載模塊
  • 深入探尋seajs的模塊化與加載方式
  • 利用Dojo和JSON建立無限級(jí)AJAX動(dòng)態(tài)加載的功能模塊樹
  • seaJs的模塊定義和模塊加載淺析
  • Windows下使用apache模塊實(shí)現(xiàn)合并多個(gè)js、css提高網(wǎng)頁加載速度
  • in.js 一個(gè)輕量級(jí)的JavaScript顆?;K加載和依賴關(guān)系管理解決方案
  • 根據(jù)配置文件加載js依賴模塊
  • js模塊加載方式淺析

標(biāo)簽:克拉瑪依 綏化 西藏 潛江 呼倫貝爾 洛陽 阿里 運(yùn)城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Extjs4.1.x 框架搭建 采用Application動(dòng)態(tài)按需加載MVC各模塊完美實(shí)現(xiàn)》,本文關(guān)鍵詞  Extjs4.1.x,框架,搭建,采用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Extjs4.1.x 框架搭建 采用Application動(dòng)態(tài)按需加載MVC各模塊完美實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Extjs4.1.x 框架搭建 采用Application動(dòng)態(tài)按需加載MVC各模塊完美實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    北川| 建阳市| 南和县| 石首市| 房山区| 苗栗市| 定州市| 玛纳斯县| 通渭县| 沙坪坝区| 峡江县| 门头沟区| 凤冈县| 兴城市| 东乌| 洪湖市| 平塘县| 雅安市| 中宁县| 上杭县| 乌拉特中旗| 巩留县| 石林| 泽普县| 榆中县| 洛扎县| 得荣县| 渭源县| 龙州县| 始兴县| 阿拉善右旗| 伊春市| 台东县| 伊吾县| 将乐县| 金昌市| 池州市| 民丰县| 讷河市| 梅河口市| 新安县|