You can view and download all files at Flexible Column Layout App - Step 10.
<mvc:View
xmlns="sap.m"
xmlns:f="sap.f"
xmlns:mvc="sap.ui.core.mvc">
<f:DynamicPage toggleHeaderOnTitleClick="false">
<!-- DynamicPage Title -->
<f:title>
<f:DynamicPageTitle>
<f:heading>
<Title text="About supplier"/>
</f:heading>
</f:DynamicPageTitle>
</f:title>
</f:DynamicPage>
</mvc:View>
We create a simple additional page view.
... "routes": [ { "pattern": "page2", "name": "page2", "target": "page2", "layout": "EndColumnFullScreen" }, { "pattern": ":layout:", "name": "list", "target": [ "list", "detail" ] }, { "pattern": "detail/{product}/{layout}", "name": "detail", "target": [ "list", "detail" ] }, { "pattern": "detail/{product}/detailDetail/{supplier}/{layout}", "name": "detailDetail", "target": [ "list", "detail", "detailDetail" ] } ], "targets": { "list": { "name": "List", "controlAggregation": "beginColumnPages" }, "detail": { "name": "Detail", "controlAggregation": "midColumnPages" }, "detailDetail": { "name": "DetailDetail", "controlAggregation": "endColumnPages" }, "page2": { "name": "AboutPage", "controlAggregation": "endColumnPages" } } } } }
Similar to the previous step, we add the additional page view to our existing routes in the manifest.json
.
<mvc:View
controllerName="sap.ui.demo.fcl.controller.DetailDetail"
xmlns="sap.f"
xmlns:m="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<DynamicPage toggleHeaderOnTitleClick="false">
<title>
<DynamicPageTitle>
<heading>
<m:FlexBox wrap="Wrap" fitContainer="true" alignItems="Center">
<m:Title text="{products>text}" wrapping="true" class="sapUiTinyMarginEnd"/>
</m:FlexBox>
</heading>
</DynamicPageTitle>
</title>
<content>
<m:Link text="Navigate to next pageā¦" press=".handleAboutPress"/>
</content>
</DynamicPage>
</mvc:View>
We add a link in the detail-detail page with a press
event handler.
sap.ui.define([ "sap/ui/core/mvc/Controller", 'sap/f/library' ], function (Controller, fioriLibrary) { "use strict"; return Controller.extend("sap.ui.demo.fcl.controller.DetailDetail", { onInit: function () { var oOwnerComponent = this.getOwnerComponent(); this.oRouter = oOwnerComponent.getRouter(); this.oModel = oOwnerComponent.getModel(); this.oRouter.getRoute("detailDetail").attachPatternMatched(this._onPatternMatch, this); }, handleAboutPress: function () { this.oRouter.navTo("page2", {layout: fioriLibrary.LayoutType.EndColumnFullScreen}); }, _onPatternMatch: function (oEvent) { ...
Finally, we add a handleAboutPress
function in the detail-detail page controller to navigate to the additional page
without passing any data this time.