Extjs6(四)——侧边栏导航根据路由跳转页面
本文基于ext-6.0.0
之前做的时候这个侧边栏导航是通过tab切换来切换页面的,但是总感觉不太对劲,现在终于发现怎么通过路由跳转了,分享给大家,可能有些不完善的地方,望大家读后可以给些指点。欢迎留言!
另:这篇是接着上一篇的侧边栏写的,最好先看一下上一篇Extjs6(三)——用extjs6.0写一个简单页面。
先看一下效果,如下图:


一、写页面的中间部分treesCenter.js
treesCenter.js
Ext.define('Learning.view.treelearn.region.treesCenter', {
extend: 'Ext.panel.Panel',
xtype: 'treesCenter',
autoScroll: true
});
别忘了把它引用到页面中(下面的写在trees.js里面)
{
reference:'treesCenter',
xtype:'treesCenter',
region :'center',
collapsible: false,
split: false,
},

二、treeController.js
1、指明要控制的组件
在选择改变时,调用onTreeNavSelectionChange
control: {
'treesLeft': {//组件别名,表示要控制的是该组件
selectionchange: 'onTreeNavSelectionChange'
}
},
2、写onTreeNavSelectionChange
redirectTo方法是用来更新Hash的,例如this.redirectTo('user/1234'),会更新 Hash 为 "#user/1234" ;更新的Hash与当前值相同时,redirectTo方法返回false,不会更新Hash。
id是写在data.json里,就是上一篇侧边栏的数据
onTreeNavSelectionChange: function(selModel, records) {
var record = records[0];
if (record) {
this.redirectTo(record.getId());
alert(record.getId())
}
},
现在看一下效果,点击侧边栏任意一个,会弹出相应的id,如下图:

3、routes 配置
我们使用的路由是 /#id ,如: 
“:id”中的这个id是参数,这个参数会传入handleRoute。
routes : {
':id': 'handleRoute',//执行跳转
},
4、写handleRoute
①先声明一些变量
②响应路由,左侧树定位到相应节点,把中间面板treesCenter清空
③如果是叶子结点,就把id对应的页面放到treesCenter中显示出来(id一定要和子页面的xtype一致)
handleRoute : function(id) {
var me = this,
treeView = me.getView(),
treesLeft = treeView.down('treesLeft'),
treesCenter = treeView.down('treesCenter'),
store = treesLeft.getStore(),
node = store.getNodeById(id),
className,cmp,ViewClass;
//响应路由,左侧树定位到相应节点
treesLeft.getSelectionModel().select(node);
treesLeft.getView().focusNode(node);
treesCenter.removeAll(true);
if (node.isLeaf()) {
className = Ext.ClassManager.getNameByAlias('widget.' + id);
cmp = Ext.create(className);
treesCenter.add(cmp);
}
},
三、子页面
子页面随便写什么都可以,这里就用生成项目时自带的那个List.js吧。
List.js的xtype是mainlist,就在data.json中写
{
id: 'mainlist',
text: 'list',
leaf: true
},
到此,就可以得到文初的效果了。
完。---------------------------------------------
昨天写的没保存,你说气不气嘛╭(╯^╰)╮
Extjs6(四)——侧边栏导航根据路由跳转页面的更多相关文章
- 提示框,对话框,路由跳转页面,跑马灯,幻灯片及list组件的应用
目录: 主页面的js业务逻辑层 主页面视图层 主页面css属性设置 跳转页面一的js业务逻辑层 跳转页面一的视图层 跳转页面二的视图层 跳转页面三的js业务逻辑层 跳转页面三的视图层 跳转页面三的cs ...
- Ionic5路由跳转传值复用
1. 路由技术 ( 详细记录 ) 是笔记不是博文,觉得写的不够详细的可以使用Ctrl + W组合键 路由跳转页面 1. HTML 中使用 routerLink 属性路由进行跳转,传值时使用 query ...
- React Native之使用导航器跳转页面(react-navigation)
react-navigation是一个导航库,要使用react-navigation来实现跳转页面,首先得在项目中安装此库,由于Yarn是Facebook提供的替代npm的工具,可以加速node模块的 ...
- 详解vue 路由跳转四种方式 (带参数)
详解vue 路由跳转四种方式 (带参数):https://www.jb51.net/article/160401.htm 1. router-link ? 1 2 3 4 5 6 7 8 9 10 ...
- Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩+路由跳转router-view渲染数据 路由跳转到同一个页面带参数ID 自动刷新数据
准备:导入ElementUI 看官网教程 数据准备:JSON数据转换成树状 参考文章: JS实现 JSON扁平数据转换树状数据 后台我拿的数据是这样的格式: [ {id:1 , parentId: 0 ...
- angular中路由跳转并传值四种方式
一.路由传值 步骤1 路由传递参数 注意 一定是要传递 索引值 let key = index 这种情况是在浏览器中可以显示对应的参数 这种的是问号 localhost:8080/news?id=2& ...
- Vue框架(四)——路由跳转、路由传参、cookies、axios、跨域问题、element-ui模块
路由跳转 三种方式: $router.push / $router.go / router-link to this.$router.push('/course'); this.$router.pus ...
- vue 所有的路由跳转加一个统一参数
需求是什么 所有的路由跳转加一个统一的参数 实现方式 先深入理解一下router的全局前置守卫 router.beforeEach((to, from, next) => { const que ...
- Vue之路由跳转 传参 aixos 和cookie
一.路由跳转 1.1 项目的初始化 vue create m-proj >>>创建vue项目 精简vue项目的 views 视图 About(基本是删除的) Home.(可以 ...
随机推荐
- 201521123007《Java程序设计》第1周学习总结
1. 本周学习总结 了解了JAVA语言的发展历史及特点,还有JDK.JRE.JVM三者之间的关系,安装并设置JAVA开发平台,使用Notepad++和Eclipse编辑器编写JAVA程序并运行,学会使 ...
- Java十二周总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...
- JAVA课程设计——单机版五子棋
JAVA课程设计--单机版五子棋 1.团队名称.团队成员介绍 团队名称:Gomoku小分队 团队成员: 网络1512 201521123038 游舒婷(组长) 网络1512 201521123043 ...
- 201521123110《Java程序与设计》第13周学习总结
1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 时间数据不同 ...
- Java 最常用类(前1000名) 来自GitHub 3000个项目
这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下 分析Github 3000个开源项目,粗略统计如下.括号内的数字是使用频率 0-3000. 下面的列表显示不全,完整 ...
- Windows下用Composer安装Laravel步骤(集成php环境用phpStudy2016版本)
描述:到官方网站了解并根据自己所需要的版本号安装,所需要的php版本是多少. 中文网站:http://www.golaravel.com/ 官方网站:https://laravel.com/ 其实各自 ...
- Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法
想起自己的windbg配置就转载:eqera的windows内核调试配置,真的是获益良多希望他不会介意我转载他的博客,帮了我很多,记录下来给我也给大家, 其中我主要看的是VMWare的pipe建立,而 ...
- Windows的文件权限 研究笔记
最近公司的一台设备中了病毒,杀了又出现,总是破坏机器上面运行的程序. 想着研究下文件权限,把文件设为只读,让病毒破坏不了即可. 于是开始了实验1: 首先建立一个txt文件,查看权限: 可以看到User ...
- Cnblogs关于嵌入js和css的一些黑科技
#pong .spoiler{cursor:none;display:inline-block;line-height:1.5;}sup{cursor:help;color:#3BA03B;} Pon ...
- jquery实现点击div外隐藏div
html <div style="width:100px;height:100px;border:1px solid #ff0" id="div"> ...