Ext.define("mvc.controller.testController",{
extend:"Ext.app.Controller",
config:{
routes: {//路由
/* 以路由功能为基础,为应用程序设置访问历史功能支持变得很容易。
* 路由实现原理:就是url和控制器动作之间的映射,
* 当地址栏中的一个特定类型url被检测到的时候,
* 相应的控制其动作就会被自动调用
*/
//http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#login
//通过在index.html的后面添加#login即可访问showLogin里的方法。
//这个可认为是深链接。我们可以将链接的任意部分发送出去,当这个链接被单击时候页面会加载到正确的位置。
//而不是应用程序的初始位置。
'login': 'showLogin',
//:id是参数
//http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#user/234
//即可把234当做参数传递给shouUserById这个函数
'user/:id': 'showUserById',
//包含两个参数id,format,
//http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#products/12/abc
//即可把12和abc当做参数传递给showProductInFormat函数
'products/:id/:format': 'showProductInFormat',
//路由进阶
/* 路由进阶产生原因:
正常情况下 路由中的通配符可以匹配任意连续的字母和数字字符串。
* 比如"products/:id/edit"这个路由可以匹配"#products/123/edit",
* 但是却不能匹配"#products/a ,fd.sd/edit",后面这个url包含了一些非法字符(空格,逗号,点号);
* 传参需求:
* 但是有时候我们还是需要路由能够匹配类似的url,比如我们的url包含一个文件名,我们想把它取出来。
* 路由进阶解决办法:
* 也就是说可以使用一个包含了action属性的配置对象来取代action字符串。
* 除此之外,我们给这这个对象添加一个conditions属性,
* 这个属性定义了:filename这个参数可以匹配英文数字、阿拉伯数字外加一个英文点号。
* 这样我们的路由现在就可以匹配像http://myapp.com/#file/someFile.jpg这样的url了,
* 它会把someFile.jpg作为参数传递给控制器的showFile函数。
* //http://localhost:8080/NetUserPerception/test/myjs/mvc/index.html#file/someFile.jpg
*/
'file/:filename': {
action: 'showFile',
conditions: {
':filename': "[0-9a-zA-Z\.]+"
}
}
},
refs:{//可以使用itemId或者选择器进行查找过滤
conView:"#controllerView",
tabOneApple:"button[action=tabOneApple]",
//查找button中action是tabOneApple的按钮
infoPanel: {
selector: 'tabpanel panel[name=fish] textfield',
//查找 tabpanel中item的name是fish的这个tab,tab的items中是否含有xtype是textfield的
//如果不含有则根据下面的xtype和autoCreate自动创建textfield组件
xtype: 'textfield',
autoCreate: true
}
},
control:{
tabOneApple: {
tap: 'doTabOneApple'
},
'button[action=tabOneBanana]': {
tap: 'doTabOneBanana'
}
},
},
showLogin:function(){
// this.getConView().addComponent("小苹果");
// this.getConView().items.getAt(0).add({
// xtype:"textfield",
// label:"ssss"
// })
},
showUserById:function(id){
console.log("id=="+id)
},
showProductInFormat:function(id,format){
console.log("id=="+id+",format=="+format);
},
showFile:function(filename){
console.log(filename)
},
doTabOneApple:function(){
var infoPanel=this.getInfoPanel();
infoPanel.setLabel("hellow")
this.getConView().items.getAt(0).add(infoPanel)
},
doTabOneBanana:function(){
this.getTabOneApple().setText("I like apple!")
}
})
分享到:
相关推荐
Sencha Touch 是一款专为移动设备开发的前端框架,它提供了丰富的组件和API,使得开发者可以轻松构建跨平台的触控应用。这个压缩包“touch-docs-2.2.1.zip”包含了Sencha Touch 2.2.1版本的离线API参考文档,对于...
Sencha Touch 的三层架构主要包括视图(View)、模型(Model)和控制器(Controller)。视图是用户界面的呈现部分,模型用于处理数据,而控制器则负责协调视图和模型之间的交互。 1. 视图(View): 在Sencha ...
本文通过对 Sencha Touch 框架的介绍,使读者对该框架有一定的了解,并通过一些代码示例给用户更详细直观的对 Sencha Touch 框架功能的了解。 ExtJS ExtJS 是为 web 开发人员提供的基于 JavaScript 和 web 标准快速...
2. **模型(Model)与存储(Store)**:Sencha Touch使用MVC(Model-View-Controller)架构。模型用于定义数据结构和业务逻辑,而存储则负责管理数据,包括加载、保存和同步到服务器。 3. **视图(View)与控制器...
《Sencha Touch in Action》是一本关于使用Sencha Touch进行跨平台移动开发的书籍,它详细介绍了Sencha Touch框架的使用方法和技巧。Sencha Touch是一个利用HTML5、CSS3和JavaScript创建移动Web应用程序的框架,它是...
《般若人生》是一款基于Sencha Touch框架开发的移动应用项目。Sencha Touch是一个流行的JavaScript框架,专门用于构建跨平台的触屏友好型Web应用程序。它提供了丰富的UI组件和强大的数据管理工具,使得开发者能够...
Sencha Touch 是一款专为移动设备设计的前端框架,它提供了丰富的组件库和强大的数据管理功能,用于构建高性能的触控应用。这个压缩包文件包含了创建一个完整的Sencha Touch 应用所需的基本元素,让我们逐一解析这些...
Sencha Touch 是一款用于构建移动应用的前端框架,它提供了丰富的组件库和强大的数据管理功能,使得开发者可以创建交互性强、性能优异的触屏应用程序。VSCode(Visual Studio Code)是微软开发的一款广受欢迎的源...
Sencha Touch 2.4.0 是一个专为移动设备设计的前端JavaScript框架,它使得开发者能够构建功能丰富的、响应式的Web应用程序,这些应用在智能手机、平板电脑等移动设备上表现得如同原生应用一样流畅。这个框架由Sencha...
Sencha Touch 2是一款专为移动设备开发的前端框架,用于构建高性能的触控应用程序。它提供了丰富的组件库,使得开发者能够轻松创建出与原生应用相似的用户体验。本篇文章将详细阐述如何搭建Sencha Touch 2的开发环境...
Sencha Touch 是一款专为移动设备设计的前端框架,它提供了丰富的组件库,用于构建高性能的触屏Web应用。在“sencha touch list demo”中,我们主要关注的是Sencha Touch中的列表(List)组件,这是一个核心且常用的...
Sencha Touch SDK工具是开发移动应用的重要资源,尤其对于那些希望使用Sencha Touch框架构建触控友好、跨平台Web应用程序的开发者来说。Sencha Touch是一个强大的JavaScript库,它提供了丰富的UI组件和API,使得...
4. **初始化图表**:在Sencha Touch 的控制器(Controller)中,当数据加载完成后,利用FusionCharts的API创建图表实例。你需要指定图表类型、宽度、高度、数据源以及容器ID。 ```javascript var chart = new ...
MVC(Model-View-Controller)架构模式是Sencha Touch 2中的核心设计原则,帮助组织和管理代码,提高应用的可维护性和可扩展性。 在这个“Sencha Touch 2 MVC Demo”中,我们很可能会找到一个完整的示例项目,展示...
标题中的"api.zip_sencha _sencha touch api_sencha touch2 api"表明这是一个关于Sencha Touch API的压缩文件集合,可能包含了Sencha Touch和Sencha Touch 2两个版本的API文档。 **Sencha Touch基础知识** Sencha ...
Sencha Touch 是一款专为移动设备设计的前端框架,它为开发者提供了构建触控友好的、高性能的Web应用程序的能力。1.0.1a是这个框架的一个早期版本,虽然现在可能已被更新版本所取代,但对于了解其发展历史和技术原理...
Sencha Touch是一款强大的JavaScript框架,专门用于构建移动Web应用程序。它提供了一套完整的UI组件和交互功能,使得开发者能够创建出具有原生应用体验的触摸友好型应用。这个"Sencha Touch中文翻译文档"是针对...
在Sencha Touch中,MVC(Model-View-Controller)模式是其核心架构,帮助开发者组织和分离代码,提高代码的可维护性和可扩展性。本文将深入探讨Sencha Touch的MVC模式以及如何使用。 ### MVC模式简介 MVC模式是一...