最简单的ExtJS4的MVC实例

简介: 最简单的ExtJS4的MVC实例

        最简单的ExtJS4的MVC实例

从ExtJS4.0开始,ExtJS支持MVC架构,让前端开发者更好的实现数据与逻辑分离,使用


View, Controller, Model组件定义来完成浏览器前端业务。提高代码可以维护性。ExtJS中


的View是被动模式,被Controller持有。


一个最简单的基于ExtJS4的MVC的App实例,有Contoller, View, Model,Store等组成


其目录结构必须遵循以下结构:

1344661095_9986.png



每个ExtJS的应用都必须从创建一个Ext.app.Application实例开始,app/app.js创建一个Application实例


并完成初始化。name: 'USERS'表示命名空间为USERS,完全源代码如下:

Ext.Loader.setConfig({
 
    enabled: true
});
 
Ext.create('Ext.app.Application', {
 
    name: 'USERS',
    autoCreateViewport: false,
    controllers: ['Users'],
 
    launch: function() {
      
    }
});

定义一个Controller

Controller将会绑定一个Application,Controller的真实目的是监听事件并作出合适的响应动作

通常这些事件来是View上面的用户操作。创建一个Controller为app/controller/Users.js

Ext.define('USERS.controller.Users', {
 
    extend: 'Ext.app.Controller',
 
    models: ['User'],
    stores: ['Users'],
    views: ['Panel', 'Grid'],
 
    init: function() {
        Ext.create('USERS.view.Panel', {
            layout: 'fit',
            height: 300,
            width: 500,
 
            items: {
                xtype: 'userlist'
            },
 
            renderTo: document.body
        });
 
        Ext.create('USERS.view.Grid').show();
    }
});

定义两个个View, app/view/Grid.js是创建EXT Grid View来显示数据

Ext.define('USERS.view.Grid' , {
 
    extend: 'Ext.grid.Panel',
    alias : 'widget.userlist',
    title : 'User Contact Info',
    store: 'Users', 
 
    columns: [{
        header: 'Name',
        dataIndex: 'name',
        flex: 1
    },{
        header: 'Email',
        dataIndex: 'email',
        flex: 1
    }]
});

app/view/Panel.js是创建EXT Panel View来构建Grid的layout

Ext.define('USERS.view.Panel', {
    extend: 'Ext.panel.Panel'
});

定义一个数据模型(data Model) app/model/User.js

Ext.define('USERS.model.User', {
 
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'email']
});

定义个数据存储(data store) app/store/User.js

var myData = [
        [1, 'gloomyfish', 'bfnh1998@hotmail.com'],
        [2, 'Bob Denoy', 'bobwindy@yahoo.com'],
        [3, 'Rose Kate', 'kittygroup@facebook.com']
];
 
Ext.define('USERS.store.Users', {
 
    extend: 'Ext.data.Store',
    model: 'USERS.model.User',
    autoLoad: true,
    data: myData
});


位于app同一层次的HTML页面代码如下:

<html> 
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title id="page-title">Simple MVC Application</title> 
      <link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css">
      <style type="text/css">
      body {
        margin-top: 30px;
        margin-right: 30px;
        margin-bottom: 30px;
        margin-left: 30px;
      }
    </style>
      <script type="text/javascript" src="extjs/ext-all.js"></script>
    <script type="text/javascript" src="app/app.js"></script> 
  </head> 
  <body> 
  </body> 
</html>

运行效果如下:

1344664593_1963.png

参考引用 - http://www.sencha.com/learn/the-mvc-application-architecture/

2012-08-11

相关文章
|
6月前
|
XML 前端开发 Java
Spring MVC - context:component-scan实现原理与实例
Spring MVC - context:component-scan实现原理与实例
48 0
|
7月前
|
JavaScript 前端开发 容器
ExtJs 4.x MVC 架构
ExtJs 4.x MVC 架构
|
前端开发 Android开发
Android 架构MVC MVP MVVM+实例(下)
实例 MVC实例 代码结构 1.在layout创建一个布局文件 2.实体类(User) 3.MVCLoginActivity MVP实例 代码结构 1.Model层 2.Presenter层 3.View层 MVVM实例 1.Model层 2.ViewModel层 3.View层 实例传送门
146 0
Android 架构MVC MVP MVVM+实例(下)
|
前端开发 Java 关系型数据库
Spring MVC实现mysql数据库增删改查完整实例
Spring MVC实现mysql数据库增删改查完整实例
Spring MVC实现mysql数据库增删改查完整实例
|
开发框架 前端开发 .NET
Api:无法检索元数据,mvc:未将对象引用设置到对象的实例
Api:无法检索元数据,mvc:未将对象引用设置到对象的实例
Api:无法检索元数据,mvc:未将对象引用设置到对象的实例
|
存储 前端开发 测试技术
Android 架构MVC MVP MVVM+实例(上)
前言 MVC是什么? Android中的MVC含义 工作原理 MVC的缺点 MVP是什么 Android中的MVP含义 工作原理 MVP的优点 MVP的缺点 MVVM是什么 Android中的MVVM含义 工作原理 MVVM的优点 MVVM的缺点 MVP和MVC的最大区别 如何选取框架
329 0
Android 架构MVC MVP MVVM+实例(上)
|
设计模式 JSON 前端开发
MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)(2)
MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)
125 0
MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)(2)
|
设计模式 JSON 前端开发
MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)(1)
MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)
153 0
MVC框架模式技术实例(用到隐藏帧、json、仿Ajax、Dom4j、jstl、el等)(1)
|
XML 设计模式 前端开发
【Spring MVC 新手指北】1、Spring MVC 简介及入门实例
【Spring MVC 新手指北】1、Spring MVC 简介及入门实例
173 0
【Spring MVC 新手指北】1、Spring MVC 简介及入门实例
|
1月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
94 0