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. 自然语言处理高手_相关资源_开源项目(比如:分词,word2vec等)

    (1) 中科院自动化所的博士,用神经网络做自然语言处理:http://licstar.net (2) 分词项目:https://github.com/fxsjy/jieba(3) 清华大学搞的中文分词 ...

  2. iOS UITabBar

    参考文章:http://www.cnblogs.com/wendingding/p/3775488.html 简单明了,不用再总结了.

  3. Python3基础 用while 循环求解 一个整数的阶乘

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  4. Java经典案例之-“统计英文字母、空格、数字和其它字符的个数”

    /** * 描述:输入一行字符串,并且统计出其中英文字母.空格.数字和其它字符的个数. * 分析:利用for语句,条件为输入的字符不为 '\n ' * 作者:徐守威 */ package com.xu ...

  5. 使用(Drawable)资源——StateListDrawable资源

    StateListDrawable用于组织多个Drawable对象.当使用StateListDrawable作为目标组件的背景.前景图片时,StateListDrawable对象所显示的Drawabl ...

  6. 连接linux 服务器

    File > Quick Connect ,Hostname 是ip , Username是用户名

  7. RadioGroup

    获取选中的Text radioGroup1.Properties.Items[radioGroup1.SelectedIndex].Description

  8. endnote 使用方法

    选择需要的期刊格式,复制到收藏夹. 下载安装插件. 鼠标放在需要插入引用的地方. 关键词搜索文献,记得在这之前要把需要的文献保存至endnote online.然后insert就行了.初次安装可能会有 ...

  9. WebRTC音视频引擎研究(2)--VoiceEngine音频编解码器数据结构以及参数设置

    1.VoiceEngine Codec数据结构 WebRTC中,用一个结构体struct CodecInst表示特定的音频编解码器对象: struct CodecInst { int pltype;  ...

  10. Canvas drawImage API

    drawImage <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...