Extjs mvc
MVC的模式,模型(Models)和控制器(Controllers)
Model模型 是字段和它们的数据的集合,例如User模型带有username和password字段,模型知道如何持久化自己的数据,并且可以和其他模型关联,模型跟ExtJS 3 中的Record类有点像(区别是,Record只是单纯的扁平结构,而Model可以nest),通常都用在Store中去展示grid和其他组件的数据
View视图 是组件的一种,专注于界面展示 - grid, tree, panel 都是view
Controllers控制器 一个安放所有使你的app正确工作的代码的位置,具体一点应该是所有动作,例如如何渲染view,如何初始化model,和app的其他逻辑
目录结构如下图所示:

index.html 文件如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="../resources/css/ext-all.css">
<script type="text/javascript " src="../bootstrap.js"></script>
<script type="text/javascript" src="app.js"></script>
</head>
<body>
</body>
</html>
Ext.app.application
代表整个应用
Ext.container.Viewport
Viewport渲染自身到网页的documet body区域, 并自动将自己调整到适合浏 览器窗口的大小,
在窗口大小发生改变时自动适应大小,
继承于 :Ext.Component
app.js 文件如下:
Ext.application({
// 动态加载 这个类。
requires: ['Ext.container.Viewport'],
// 这个应用的名字。
name: 'FWY',
// 应用程序的路径
appFolder: 'app',
// 应用程序控制器名称
controllers: ['Students'],
// 页面 装载完成后自动调用。
launch: function () {
Ext.create('Ext.container.Viewport',{
// 布局
layou:'fit',
items: [{
xtype: 'studentlist'
}]
})
}
});
View 定义一个视图。
Ext.define('FWY.view.student.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.studentlist',
store: 'Students',
title: '学生信息列表',
initComponent: function () {
this.columns = [
{header: '编号', dataIndex: 'id', flex:1},
{header: '姓名', dataIndex: 'name', flex:1},
{header: '年龄', dataIndex: 'age', flex:1},
{header: '性别', dataIndex: 'sex', flex:1}
];
this.callParent(arguments);
}
});
创建一个model 文件
Ext.define('FWY.view.student.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.studentlist',
store: 'Students',
title: '学生信息列表',
initComponent: function () {
this.columns = [
{header: '编号', dataIndex: 'id', flex:1},
{header: '姓名', dataIndex: 'name', flex:1},
{header: '年龄', dataIndex: 'age', flex:1},
{header: '性别', dataIndex: 'sex', flex:1}
];
this.callParent(arguments);
}
});
controller 层 创建文件
Ext.define('FWY.controller.Students', {
extend: 'Ext.app.Controller',
views: [
'student.List',
'student.Edit'
],
stores: ['Students'],
models: ['Students'],
init: function () {
this.control({
'studentlist': {
itemdblclick: this.editStudent
},
'studentedit button[action = save]' : {
click: this.updateStudent
}
});
},
onPanelRendered:function() {
console.log("panel rendered!");
},
updateStudent: function(button) {
// 获取window 下面的 下面的 按钮, 提交。
var win = button.up('window'),
form = win.down('form'),
record = form.getReader()
},
editStudent: function (grid,record) {
// 通过别名获得这个组件
var view = Ext.widget('studentedit');
// 这个对象向下查找 form 组件,自动赋值
view.down('form').loadRecord(record);
}
});
store 创建文件。
Ext.define('FWY.store.Students',{
extend: 'Ext.data.Store',
model:'FWY.model.Students',
data: [
{id:1,name:'zhangsan', age:18,sex:'boy'},
{id:2,name:'lisi', age:20,sex:'gril'}
]
});
Extjs mvc的更多相关文章
- Extjs MVC学习随笔01
Extjs Mvc模式下的整个MVC框架体系即下图: 包含了Controller(实现方法层),Store(数据来源管理层),View(页面布局层).之所以用MVC我想是因为减轻针对某一页面的单一的J ...
- Extjs MVC开发模式详解
Extjs MVC开发模式详解 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式, ...
- ExtJS MVC学习手记 2
开发环境 eclipse(indigo) ExtJS4.0 开发目标 使用store.model和controller创建菜单树 开发步骤 之前我们已经建立了一个MVC的项目框架.现在要做的就是在这个 ...
- ExtJS MVC学习手记 1
开发环境: ExtJS4.2 eclipse indigo 开发目标 搭建项目框架,创建viewport 开发步骤说明 这次主要使用extjs4的mvc模式创建viewport.籍此初步了解mvc模 ...
- ExtJS MVC学习手记
开始学习ExtJS的MVC了.这篇文章仅是用来做一个目录,为自己这个阶段的学习内容做个索引. 手记涉及的文章: EXTJS MVC结构(译自ExtJS4.0文档中的<MVC Architectu ...
- Extjs MVC模式开发,循序渐进(一)
本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...
- ExtJS MVC结构
概述 大型的应用在开发和运维上都存在着困难.应用功能的调整和开发人员的调动都会影响对项目的掌控.ExtJS4带来了一种新的应用结构.这种结构不止用于组织代码,也能有效的减少必要的代码量. 这次ExtJ ...
- Flux和ExtJS MVC框架的异同点介绍
Flux是Facebook在现有MVC框架数据流动复杂,难以设计和维护大型的前端应用的情况下设计的一种新的数据架构协议.叫做协议是因为Flux本身就像MVC一样,规定了一种机制,但是Facebook提 ...
- Extjs MVC模式
最近在学习Extjs,发现他可以使用MVC模式,不但可以组织代码,而且可以 减少实现的内容,模型(Models)和控制器(Controllers)也被引入其中. Model模型是字段和它们的数据的集合 ...
随机推荐
- ajax 注册
$(document).ready(function(e){ $("#uid").blur(function(){ var uid = $("#uid").va ...
- js jqery判断checkbox是否选中,全选,取消全选,反选,选择奇数偶数项
// 一,判断选中 // js var ischecked2 = function(){ // this.checked == true $(document.getElementsByTagName ...
- Java序列化与反序列化,文件操作
参考两篇博客: http://blog.csdn.net/moreevan/article/details/6697777 http://blog.csdn.net/moreevan/article/ ...
- spring整合mybatis,springMVC的0配置文件方式
0配置文件的形式主要是采用spring3.0提供的@configuration注解和spring容器在启动的时候会加载实现了WebApplicationInitializer的类,并调用其onStar ...
- 第十八篇、OC_使用OAStackView FDStackView (第三方框架)可以使用在ios 7及以上的版本
UILabel *view1 = [[UILabel alloc]init]; view1.text = @"Label1"; view1.backgroundColor = [U ...
- 【WebService】WebService学习笔记
WebService三要素 WebService三要素SOAP(Simple Object Access Protocol).WSDL(WebServicesDescriptionLanguage). ...
- 在DFS和BFS中一般情况可以不用vis[][]数组标记
开始学dfs 与bfs 时一直喜欢用vis[][]来标记有没有访问过, 现在我觉得没有必要用vis[][]标记了 看代码 用'#'表示墙,'.'表示道路 if(所有情况都满足){ map[i][j]= ...
- js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象
1.Factory基本写法 <!DOCTYPE html><html lang="en"><head> <meta charset= ...
- 滚轮事件的防冒泡、阻止默认行为的代码(效果是:只让当前div滚动,连当前文档都不滚动的效果)
//用firefox变量表示火狐代理var firefox = navigator.userAgent.indexOf('Firefox') != -1;function MouseWheel(e){ ...
- HDU-5086-Revenge of Segment Tree
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5086 这题太不应该了,比赛时没做出来,本来呢,以现在的水平这题是能够做出来的,可就是题目理解错了,按题 ...