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 是一款专为移动设备设计的JavaScript框架,它提供了丰富的组件和强大的数据管理功能,使得开发响应式的、交互性强的移动应用变得容易。在Sencha Touch中,MVC(Model-...
Sencha Touch MVC Demo Sencha Touch 是一个专为移动设备设计的JavaScript框架,它提供了丰富的UI组件和强大的数据管理功能,使得开发高性能的移动Web应用变得简单。在Sencha Touch中,Model-View-Controller(MVC...
最近在学习sencha touch;走了不少弯路。我从这个sencha touch mvc框架中获益匪浅;发出来跟大家共享。直接用chrome和safari打开index.html;ie和firefox不支持。希望对大家有用
在这个“Sencha Touch 2 MVC Demo”中,我们很可能会找到一个完整的示例项目,展示了如何在Sencha Touch 2中运用MVC模式来构建应用。源码的分析将有助于深入理解框架的工作原理和最佳实践。 **MVC模式详解** 1. **...
Pactpub.Sencha.MVC.Architecture.Nov.2012.pdf
本示例“sencha-touch2 mvc demo”是关于Sencha Touch 2 MVC架构的一个简单演示,它展示了如何在移动应用中有效地组织代码并利用MVC模式。MVC(Model-View-Controller)是一种流行的设计模式,用于分离应用程序的...
Sencha MVC Architecture,精解Sencha MVC
在“Sencha Touch Camera MVC模式”中,我们将探讨如何在Sencha Touch中集成相机功能,并使用MVC模式进行开发。 1. **MVC模式**: MVC模式是一种软件设计模式,用于分离应用程序的数据逻辑、用户界面和业务逻辑。...
Sencha Touch 2 是一款专为移动设备设计的前端框架,它基于JavaScript,利用MVC(Model-View-Controller)架构模式,为开发者提供了一套完整的工具来构建高性能的触屏应用。本示例主要关注如何在Sencha Touch 2应用...
在本教程中,我们将深入探讨Sencha Touch 2中的MVC(Model-View-Controller)模式,并通过一个具体的登录界面例子来理解其工作原理。 MVC模式是软件设计中的经典架构,它将应用程序分为三个核心部分:模型(Model)...
学习Sencha,开发者需要掌握JavaScript基础,理解MVC(Model-View-Controller)设计模式,以及如何利用Sencha的数据管理和远程通信功能。同时,对于Sencha Touch,熟悉移动设备的特性和限制也是必不可少的。通过深入...
2. **模型(Model)与存储(Store)**:Sencha Touch使用MVC(Model-View-Controller)架构。模型用于定义数据结构和业务逻辑,而存储则负责管理数据,包括加载、保存和同步到服务器。 3. **视图(View)与控制器...
4. **模型-视图-控制器(MVC)架构**:支持Sencha的MVC设计模式,帮助组织和管理代码。 5. **组件库**:提供了丰富的组件库,包括表格、图表、面板等,满足各种Web应用需求。 6. **集成开发环境(IDE)**:作为一站...
Sencha MVC架构是Sencha Touch和Ext JS框架中用于构建高效、可维护的单页应用程序(SPA)的核心设计模式。这个架构模式深受开发者喜爱,因为它提供了分层的组织方式,帮助管理和协调应用中的数据流、视图和业务逻辑...
1.代码生成工具:代码生成工具生成整个应用程序并且扩展生成mvc的组件框架,如,使用sencha generate app 命令,可以自动帮你生成一个完成的应用程序目录框架。 2.JS编译:框架意识,Javascript 编译器了解Sencha的...
框架还支持数据绑定和 MVC(模型-视图-控制器)架构,有助于保持代码组织良好和易于维护。同时,Sencha Touch 提供了事件处理机制,使得响应用户交互变得简单。 总的来说,Sencha Touch 是一款强大且成熟的前端开发...