我具有以下路线定义:
"routes": [{
"name": "overview",
"pattern": "",
"target": [
"overview"
]
}, {
"name": "customers",
"pattern": "/customers",
"target": [
"customers"
]
}, {
"name": "customer",
"pattern": "/customer/{id}",
"target": [
"customer"
]
}],
为什么目标属性需要一个数组?
答案 0 :(得分:4)
target
属性的值可以是一个数组,但不一定非要如API reference of sap.ui.core.Route
中所述:
它完全可以等待一个数组的原因是,当导航到单个route
或基于特定哈希值进行导航时,它支持一次显示多个视图(目标)实例值。
示例:该应用基于Flexible Column Layout(以前是带有sap.m.SplitApp
的“分屏”布局),并且用户通过具有哈希值的深层链接(例如, #/Objects/ObjectID_14
。
在这种情况下,如果仅将单个目标名称分配给target
属性,则只能显示其中一个视图。但是,target
属性可以包含多个目标名称,这些名称随后将根据controlAggregation
进行解析和放置。
"routes": [
{
"name": "masterDetail",
"pattern": "Objects/{objectId}",
"target": [
"master",
"detail"
]
}
],
"targets": {
"master": {
"viewName": "Master",
"controlAggregation": "beginColumnPages"
},
"detail": {
"viewName": "Detail",
"controlAggregation": "midColumnPages"
}
}
要了解有关路由的更多信息,请按照以下步骤操作:https://ui5.sap.com/#/topic/1b6dcd39a6a74f528b27ddb22f15af0d
答案 1 :(得分:1)
因为一条路线可能有多个目标。这相当于以前的subroutes
。
通过对一条路线使用多个目标,您可以同时更新应用程序的不同区域。基于相同的路由模式。
考虑一个SplitApp。如果您还希望基于路由更改“主视图”和“详细视图”,则可以将它们都定义为同一路由的目标。
在文档中查找更多信息:https://sapui5.hana.ondemand.com/#/topic/b01840ec42ef48e6bfd2bc12612f501f