extjs 데스크톱 예시에 mvc를 통합하고 싶은 아동화
5572 단어 Desktop
한동안 extjs 데스크톱 예시와 mvc의 통합을 괴롭혔는데 몇 가지 방안을 정리했습니다.
1. 외국인이 개작한 extjs 데스크톱으로 외국인들은 데스크톱 예시를 철저히 대수술했고 mvc, 프로젝트 주소를 철저히 지원했다.
https://github.com/derAndreas/Webdesktop
이 물건은 변동이 너무 커서 자바 프로젝트에 집적하는 것이 너무 번거롭고 포기합니다.
2. csdn에 어떤 소인이 경동상점의 백그라운드 시스템을 모방하고 mvc모드의desktop 응용 프로그램을 썼다. 그의 사고방식은 데스크톱이 원래의 extjs로 직접 가져온 것이다. 그리고 구체적인 메뉴가 클릭된 후의create 윈도우에 extjs mvc의 응용 프로그램을 새로 만드는 것이다. 이것은 기능 모듈인 mvc 응용 프로그램의 응용 방식에 해당한다.
원작자 블로그 주소:
http://blog.csdn.net/zhangshuaipeng/article/details/7489159
주요 코드:
createWindow: function () {
var desktop = this.app.getDesktop();
var win = desktop.getWindow('address');
Ext.application({
name: 'FMApp.CustomerApp', //
appFolder: "FMApp/CustomerApp", //
launch: function () {//
if (!win) {
win = desktop.createWindow({
id: 'address',
title: ' ',
width: 580,
height: 380,
iconCls: 'icon_address',
// animCollapse: false,
border: false,
hideMode: 'offsets',
closable:true,
closeAction:"destroy",
layout:"fit",
items:{xtype: 'addressgrid'}
});
};
win.show();
return win;
},
controllers: [
'AddressController'
]
});
3. 방금 신선하게 나온 내가 괴롭히는 통합 방식은 대체적인 사고방식은 extjs mvc 응용 프로그램이고 응용 프로그램입니다.js에서 extjs 데스크톱을 만들고 데스크톱 메뉴나 데스크톱 아이콘이 눌린 후에 extjs controller를 동적으로 불러오고 ui를 동적으로 만듭니다.
키 코드: app.js
var application;
var _myDesktopApp;
Ext.tip.QuickTipManager.init();
Ext.Loader.setConfig({
disableCaching:true,
enabled: true,
paths: {
'Ext.ux.desktop': 'static/js/lib/desktop',
'MyDesktop': 'js/xxx/xxx_desktop'
}
});
Ext.require('MyDesktop.App');
application =new Ext.application({
requires: [
'Ext.window.MessageBox',
'Ext.container.Viewport'
],
name: 'app',
appFolder:'js/xxx/app',
autoCreateViewport: false,
launch: function() {
var me = this;
Ext.QuickTips.init();
_myDesktopApp = Ext.create('MyDesktop.App');
_myDesktopApp.application=me;
}
});
그리고 구체적인 메뉴가 클릭된 코드에 컨트롤러를 동적으로 불러옵니다. 핵심 코드:
createWindow : function(src){
var desktop = this.app.getDesktop();
var win = desktop.getWindow(' '+src.windowId);
var controller_name="app.controller.ClassInfo";
if (!Ext.ClassManager.isCreated(controller_name)) {
// controller
var _controller=this.app.application.getController(controller_name);
_controller.app=this.app;
}
if(!win){
// mvc view
var list_view=Ext.widget("ClassInfo_List");
win = desktop.createWindow({
id: 'bogus'+src.windowId,
title:src.text,
layout:"fit",
width:640,
height:480,
items:[list_view],
iconCls: 'bogus',
animCollapse:false,
constrainHeader:true
});
}
win.show();
return win;
}
이 정도면 됐어. extjs 데스크톱과 mvc의 통합은 끝났어. 회색은 간단하고 노자 N이 많은 뇌세포를 소모했어.
나중에 컨트롤러에서 팝업 창이 필요하면desktop을 사용하세요.createwindow에서 생성합니다. 코드는 다음과 같습니다.
var _view=Ext.widget("ClassInfo_Add");
var desktop = this.app.getDesktop();
var add_form_win = desktop.createWindow({
id: 'class_info_add',
title:' ',
layout:"fit",
width:440,
height:280,
closable:true,
closeAction:"destroy",
items:[_view],
iconCls: 'bogus',
animCollapse:false,
constrainHeader:true
});
//var add_form_win=Ext.widget('ClassInfo_Add');
add_form_win.down('form').loadRecord(new_record);
add_form_win.show();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ubuntu18.04에서 Salome-Meca 아이콘을 즐겨 찾기에 표시Ubuntu16 이전에는 Salome-Meca를 시작하는 동안 아이콘이 즐겨 찾기 목록에 아이콘이 표시되고 아이콘을 마우스 오른쪽 버튼으로 클릭하여 즐겨 찾기에 추가 할 수 있었지만 Ubuntu18 이후에는 할 수 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.