Created by Jerry Wang, last modified on Jan 29, 2015

  • crossroads
  • crossroads-dbg.js
  • route
  • _getMatchedRoutes
  • thirdparty
  • router
  • navTo
  • match

UI5 view之间navigation的核心代码在folder resources/sap/ui/thirdparty里的js实现。
如上图所示,router framework试图根据传入的route request "detail/AccountCollection('4039331')" 来获取一条匹配的route path.
问题1: 这个request是怎么传到route framework的?
answer:在我们自己的application view里传递的。当我们点击navigation list时,框架自动调用我们注册的事件处理函数setListItem, 在line 124将当前待显示的detail page的上下文,所谓的contextPath,即"detail/AccountCollection('4039331')"通过调用route框架的方法navTo传入route框架

问题2: route framework 具体的匹配逻辑

问题3: route framework里匹配的三条记录从哪里来的
answer: 在project的component.js里:

注意上面有两个hard code的detail,其含义不一样。先把第二个detail改成mydetail:

第三条匹配生效了:


此时由于application code里调用navTo时仍然传的是detail,因此找不到匹配的route,点击list里每个item后将没有任何效果-浏览器里地址栏没有发生变化,表明没有发生navigation。

如果将application code里的detail也改成mydetail之后,仍然不work:
原因是this._oRoutes object里没有名为mydetail的attribute:

改成如下之后:

之后就能找到名为mydetail的route:

从地址栏观察到navigation重新起作用了

<img src="https://user-images.githubusercontent.com/5669954/27390923-d4015d22-56a2-11e7-8a92-63a55da646f8.png)

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

UI5 navigation logic相关推荐

  1. Fiori navigation logic ( Route )

    对于Fiori的developer来说,要在代码里做view之间的navigation很简单,就做一些配置,然后call 一行代码,思路非常像webclient ui里的inbound和outboun ...

  2. UI5 Navigation execution entry point

    Created by Jerry Wang, last modified on Jan 18, 2015 Set the breakpoint to the following two lines a ...

  3. IOS UINavigationController use

    1 appdelegate.h 定义属性: window,navigationViewController @interface AppDelegate : UIResponder <UIApp ...

  4. CRM WebClient UI outbound plug的使用

    Starting point: An example why we need to configure outbound plug mapping Technical information: CRM ...

  5. iPad 如何创建UISplitViewController应用程序

    原文摘自:UISplitViewController的使用. UISplitViewController在ipad中的使用 ipad的屏幕比iphone大,所以在界面上,ipad比iphone多一个U ...

  6. ios之UISplitViewController

    iPad的屏幕比iPhone大,所以在界面上,iPad比iPhone多一个UISplitViewController,用来实现iPad在横屏时,分两栏显示所需要的界面,可以一边是目录一边是具体的内容. ...

  7. IOS之导航控制器与表视图

    7.1 导航控制器 7.2 创建第一级控制器 7.3 第一个二级控制器 7.4 第一个三级控制器 7.5 第二个二级表控制器 7.6 第三个二级表控制器 7.7 第四个二级表控制器 7.8 第五个二级 ...

  8. Xcode 4.6.3 Bug - .m 文件不能正常打开,uitableveiwController

    当打开.m文件时尤其是自定义的继承uitableviewcontroler的m 文件.不能滑动,不能正常显示. 解决方法: 用文本编辑器打开这个文件,关闭xcode .然后在继承uitableview ...

  9. 《iPad开发从入门到精通》——6.2节系统主界面

    本节书摘来自异步社区<iPad开发从入门到精通>一书中的第6章,第6.2节系统主界面,作者 杨春泽,更多章节内容可以访问云栖社区"异步社区"公众号查看 6.2 系统主界 ...

最新文章

  1. 剑指offer:面试题32 - I. 从上到下打印二叉树
  2. iOS 改变UILabel部分颜色
  3. qt qml scrollbar 移动APP风格的滚动轴
  4. 【SpringBoot】添加自定义浏览器图标 favicon.ico
  5. Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结
  6. 基于图神经网络的图表示学习方法
  7. 诗与远方:无题(十六)
  8. 深度 | EB级规模大数据平台核心技术揭秘(上)
  9. 微积分review 极限,迫敛性,极限四则运算,自然常数来历
  10. 安卓开发快速学习!330页PDF,10万字的知识点总结,附面试题答案
  11. Linux学习笔记(22.2)——基于IIC + Regmap + IIO的AP3216C的设备驱动
  12. 该如何搭建网校系统,需要哪些准备呢?
  13. 串口硬盘与并口硬盘详解:IDE SATA SCSI 接口详解
  14. 将exe4j打包的java exe程序反编译过程
  15. python字典函数大全_python字典介绍
  16. ThinkPHP5+ECharts全国各海域港口潮汐表预测采集查询
  17. 三星苹果诺基亚齐推廉价智能机 抢食中印市场
  18. 如何使用远程Linux虚拟机的图形界面
  19. 分分钟搞懂rank() over(partition by)的使用
  20. 销售书籍推荐,销售人员最该看的是这本书!

热门文章

  1. 【驱动】使用结构体 file_operations封装驱动设备的操作 | 结构体初始化
  2. numpy的生成网格矩阵 meshgrid()
  3. oracle drop table and purge
  4. hibernate:无法级联插入
  5. dom4j Java解析xml应用
  6. flash 语法 入门
  7. 手动写sonar 插件
  8. 文本挖掘(part3)--词袋模型
  9. 文献学习(part26)--Extended Comparisons of Best Subset Selection, Forward Stepwise Selection, and Lasso
  10. 算法与数据结构(part6)--单向链表