路由很重要,因为他决定了每个页面的跳转方式以及传参。
路由的设置
定义路由的类
“routeClass”:”sap.m.routing.Router”
初始化和路由注册
UIComponent.prototype.init.apply(this,arguments)
This.getRouter().initicalize()
初始化和路由注册
{
“pattern”:”detail/{para}”,
“name”:”app”,
“viewName”:”app”,//加载哪一个页面
“targetAggregation”:”pages”//跳转方式
}
导航
在controller中实例化路由
Var oRouter = sap.ui.core.UIComponent.getRouterFor(this)
导航切换页面
oRouter.navTo(“app”,{para:someData})
路由监听(实现跳转之后我们到下一个页面可以监听上一个页面传来的一些参数)
在Controller中监听路由跳转
This.getRouter().getRoute(“product”).attachMatched(function(oEvent){},this);
读取路由参数
Var oParameters = oEvent.getParameters();
oParameters.paraName
routing下一般有三个节点config routes targets(viewLevel:跳转的层级)
配置
路由配置的过程,通常在manifest中部署,当然也可以在component里部署
"routing": {//一般有config routes targets三个节点
"config": {
"rounterClass": "sap.m.routing.Router",//路由初始化的类
"viewType": "XML",//类型
"viewPath": "EXE.view",//页面要在哪个文件夹去执行,项目名.view
"controlID": "myApp",//容器ID
"controlAggregation": "pages",//分页
"transition": "slide"//特效,类苹果的推进推出效果
},
"routes": [{
"pattern": "",//url后面的action
"name": "firstView",//路由跳转时需要指定的名字view
"target": "first"
}, {
"pattern": "second",
"name": "secondView",
"target": "second"
}],
"targets": {
"first": {
"viewName": "first",//要和view名匹配上
"viewLevel": 1
},
"second": {
"viewName": "second",
"viewLevel": 2
}
}
}
配置好要进行初始化路由,在compon.js里写下如下四行代码即可
jQuery.sap.require("sap.m.routing.RouteMatchedHandler");
var router = this.getRouter();
this.routeHandler = new sap.m.routing.RouteMatchedHandler(router);
router.initialize();