`

sencha > MVC

 
阅读更多

app.js

Ext.application({
    name: 'Sencha',

    controllers: ['Main'],
    views: ['Main'],
    stores: ['Presidents'],
    models: ['President'],

    launch: function() {
        Ext.Viewport.add({	//添加一个或多个组件到这个容器中
            xtype: 'mainpanel'	//调用在 views/Main 中声明好的叫mainpanel的组件
        });
    }
});

 

view/Main.js

Ext.define('Sencha.view.Main', {//给这个组件声明一个名称,
    extend: 'Ext.navigation.View',//继承Ext 的navigationView
    xtype: 'mainpanel',//给自己定义了一个名称mainpanel
    requires: [	//加载PresidentList  2个View;
        'Sencha.view.PresidentList'
    ],

    config: {
        items: [{
            xtype: 'presidentlist' //执行名为presidentlist 的组件,在view/PresidentList中
        }]
    }
});

 

view/PresidentList.js

Ext.define('Sencha.view.PresidentList', {
    extend: 'Ext.List',	//继承List Layout
    xtype: 'presidentlist',	//
    requires: ['Sencha.store.Presidents'],	//加载数据源 在 store/Presdents 中
    
    config: {
        title: 'American XX',	//名称这个List Layout 的属性
        grouped: true,	//
        itemTpl: '{pic} ___ {name}',	//数据格式 
        store: 'Presidents',	//数据源 从Store 中的 Presidents 中获取 
        onItemDisclosure: true	//显示右边的方向箭
    }
});

 

store/Presidents.js

Ext.define('Sencha.store.Presidents', {
    extend: 'Ext.data.Store', //继承
    
    config: {
        model: 'Sencha.model.President', //调用model/President model,
        sorters: 'pic',	//根据XX排序
        grouper : function(record) {	//record 通过model存储后的数据
            return record.get('name')[0];	//按xxx 进行分组
        },
        data: [
			{ pic: "a", name: "1" },
			{ pic: "b", name: "2" },
			{ pic: "c", name: "3" }
        ]
    }
});

 

model/President.js

Ext.define('Sencha.model.President', {
	//model 的意思是 储存某种类型的数据
    extend: 'Ext.data.Model',
    config: {
        fields: ['pic', 'name']//本model的数据类型通过this.data.xxx 调用
							   //格式的话要看谁调用这个model 要和源store的字段一致
    },
	getFullName: function() {
		return this.get('pic') + '***' + this.get('name');	//获取pic和name键值
	}

});

 

controller/Main.js

Ext.define('Sencha.controller.Main', {
    extend: 'Ext.app.Controller',

    config: {
        refs: {
            main: 'mainpanel' //找到主要控制对象所在的view
        },
        control: {
            'presidentlist': {//presidentlist 为view 中声明的组件名
				itemtap: 'showDetail'	//当list 中each Item 点击时触发showDetail 事件
            }
        }
    },

    showDetail: function(list, idx, el, record) {//必须按照list完整的参数格式否则会出错
        Ext.Msg.alert(record.getFullName());	//打印日志console.log
    }

});

 

 

分享到:
评论

相关推荐

    Sencha Touch MVC 模式

    **Sencha Touch MVC模式详解** Sencha Touch 是一款专为移动设备设计的JavaScript框架,它提供了丰富的组件和强大的数据管理功能,使得开发响应式的、交互性强的移动应用变得容易。在Sencha Touch中,MVC(Model-...

    sencha touch mvc Demo

    Sencha Touch MVC Demo Sencha Touch 是一个专为移动设备设计的JavaScript框架,它提供了丰富的UI组件和强大的数据管理功能,使得开发高性能的移动Web应用变得简单。在Sencha Touch中,Model-View-Controller(MVC...

    sencha_touch_mvc

    最近在学习sencha touch;走了不少弯路。我从这个sencha touch mvc框架中获益匪浅;发出来跟大家共享。直接用chrome和safari打开index.html;ie和firefox不支持。希望对大家有用

    Sencha Touch2 MVC Demo (含源码/数据库)

    在这个“Sencha Touch 2 MVC Demo”中,我们很可能会找到一个完整的示例项目,展示了如何在Sencha Touch 2中运用MVC模式来构建应用。源码的分析将有助于深入理解框架的工作原理和最佳实践。 **MVC模式详解** 1. **...

    Pactpub.Sencha.MVC.Architecture.Nov.2012

    Pactpub.Sencha.MVC.Architecture.Nov.2012.pdf

    sencha-touch2 mvc demo

    本示例“sencha-touch2 mvc demo”是关于Sencha Touch 2 MVC架构的一个简单演示,它展示了如何在移动应用中有效地组织代码并利用MVC模式。MVC(Model-View-Controller)是一种流行的设计模式,用于分离应用程序的...

    Sencha MVC Architecture

    Sencha MVC Architecture,精解Sencha MVC

    sencha touch camera MVC模式

    在“Sencha Touch Camera MVC模式”中,我们将探讨如何在Sencha Touch中集成相机功能,并使用MVC模式进行开发。 1. **MVC模式**: MVC模式是一种软件设计模式,用于分离应用程序的数据逻辑、用户界面和业务逻辑。...

    Sencha Touch 2 MVC Demo 本地Json访问数据

    Sencha Touch 2 是一款专为移动设备设计的前端框架,它基于JavaScript,利用MVC(Model-View-Controller)架构模式,为开发者提供了一套完整的工具来构建高性能的触屏应用。本示例主要关注如何在Sencha Touch 2应用...

    Sencha Touch 2入门教程之MVC例子程序源代码

    在本教程中,我们将深入探讨Sencha Touch 2中的MVC(Model-View-Controller)模式,并通过一个具体的登录界面例子来理解其工作原理。 MVC模式是软件设计中的经典架构,它将应用程序分为三个核心部分:模型(Model)...

    sencha.js sencha.css

    学习Sencha,开发者需要掌握JavaScript基础,理解MVC(Model-View-Controller)设计模式,以及如何利用Sencha的数据管理和远程通信功能。同时,对于Sencha Touch,熟悉移动设备的特性和限制也是必不可少的。通过深入...

    sencha touch项目源码

    2. **模型(Model)与存储(Store)**:Sencha Touch使用MVC(Model-View-Controller)架构。模型用于定义数据结构和业务逻辑,而存储则负责管理数据,包括加载、保存和同步到服务器。 3. **视图(View)与控制器...

    SenchaArchitect-2.2 (内附无限期使用方法)

    4. **模型-视图-控制器(MVC)架构**:支持Sencha的MVC设计模式,帮助组织和管理代码。 5. **组件库**:提供了丰富的组件库,包括表格、图表、面板等,满足各种Web应用需求。 6. **集成开发环境(IDE)**:作为一站...

    SenchaMVCArchitecture:Sencha MVC 架构书代码

    Sencha MVC架构是Sencha Touch和Ext JS框架中用于构建高效、可维护的单页应用程序(SPA)的核心设计模式。这个架构模式深受开发者喜爱,因为它提供了分层的组织方式,帮助管理和协调应用中的数据流、视图和业务逻辑...

    SenchaCmd-5.1.0.26-windows

    1.代码生成工具:代码生成工具生成整个应用程序并且扩展生成mvc的组件框架,如,使用sencha generate app 命令,可以自动帮你生成一个完成的应用程序目录框架。 2.JS编译:框架意识,Javascript 编译器了解Sencha的...

    sencha前端开发框架

    框架还支持数据绑定和 MVC(模型-视图-控制器)架构,有助于保持代码组织良好和易于维护。同时,Sencha Touch 提供了事件处理机制,使得响应用户交互变得简单。 总的来说,Sencha Touch 是一款强大且成熟的前端开发...

Global site tag (gtag.js) - Google Analytics