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的更多相关文章

  1. Extjs MVC学习随笔01

    Extjs Mvc模式下的整个MVC框架体系即下图: 包含了Controller(实现方法层),Store(数据来源管理层),View(页面布局层).之所以用MVC我想是因为减轻针对某一页面的单一的J ...

  2. Extjs MVC开发模式详解

    Extjs MVC开发模式详解   在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式, ...

  3. ExtJS MVC学习手记 2

    开发环境 eclipse(indigo) ExtJS4.0 开发目标 使用store.model和controller创建菜单树 开发步骤 之前我们已经建立了一个MVC的项目框架.现在要做的就是在这个 ...

  4. ExtJS MVC学习手记 1

    开发环境: ExtJS4.2 eclipse indigo 开发目标  搭建项目框架,创建viewport 开发步骤说明 这次主要使用extjs4的mvc模式创建viewport.籍此初步了解mvc模 ...

  5. ExtJS MVC学习手记

    开始学习ExtJS的MVC了.这篇文章仅是用来做一个目录,为自己这个阶段的学习内容做个索引. 手记涉及的文章: EXTJS MVC结构(译自ExtJS4.0文档中的<MVC Architectu ...

  6. Extjs MVC模式开发,循序渐进(一)

    本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...

  7. ExtJS MVC结构

    概述 大型的应用在开发和运维上都存在着困难.应用功能的调整和开发人员的调动都会影响对项目的掌控.ExtJS4带来了一种新的应用结构.这种结构不止用于组织代码,也能有效的减少必要的代码量. 这次ExtJ ...

  8. Flux和ExtJS MVC框架的异同点介绍

    Flux是Facebook在现有MVC框架数据流动复杂,难以设计和维护大型的前端应用的情况下设计的一种新的数据架构协议.叫做协议是因为Flux本身就像MVC一样,规定了一种机制,但是Facebook提 ...

  9. Extjs MVC模式

    最近在学习Extjs,发现他可以使用MVC模式,不但可以组织代码,而且可以 减少实现的内容,模型(Models)和控制器(Controllers)也被引入其中. Model模型是字段和它们的数据的集合 ...

随机推荐

  1. 【转】成为Linux内核高手的四个方法

    我曾经问别人如何开始内核编程的学习,他们基本上都说:①如果你不需要了解内核是如何为你工作的,你为何要尝试呢?②你应该订阅Linux内核邮件列表,然后努力去理解.③如果你不去编写针对Linux内核的代码 ...

  2. 【uoj57】 WC2013—平面图

    http://uoj.ac/problem/57 (题目链接) 题意 给出二位平面上n个点,点之间有一些连线,连线不在顶点之外的地方相交,将平面分为若干个区域.给出一些询问点对,问从这个点所在的区域走 ...

  3. C语言-while循环

    循环是结构化程序设计的基本结构之一,它和顺序控制.选择结构共同作为各种复杂程序的基本构造单元(摘自谭浩强的<C程序设计>. 一.while循环: 1.使用while循环控制输出0到9十个数 ...

  4. 再次写了第一个servlet

    费时2小时,熟悉tomcat和编写了第一个servlet

  5. Linux FTP 服务器配置简单说明

    一.  FTP 说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp ...

  6. 开始Java学习(Java之负基础实战)

    开发平台: JavaSE:java标准平台,一般用于桌面程序开发 JavaEE:开发web(如网站+Sping) JavaME:开发移动应用 开发环境: JVM:跨平台核心. JRE:java运行时, ...

  7. XML 字符串解析

    微信红包发送完成后返回xml字符串,解析过程如下: 1.调用解析: public ActionResult GetEntityFromXml() { string str = @"<x ...

  8. C语言的位运算的优势

    位运算加速技巧1. 如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300% x = x * 2;x = x * 64;//改为:x = x << 1; // 2 ...

  9. 添加Action View

    ActionBar上除了可以显示普通的Action Item之外,还可以显示普通的UI组件.为了在ActionBar上添加ActionView,可以使用如下两种方式. 定义ActionItem时使用a ...

  10. FMS配置小结

    官方连接:http://help.adobe.com/en_US/flashmediaserver/configadmin/WS5b3ccc516d4fbf351e63e3d119f2925e64-8 ...