为什么它不显示两列?

Why it does not show two columns?

我正在尝试在我的应用程序上使用 Flexible Column Layout,但我遇到了路由问题。然而它并没有在屏幕上显示预期的结果。

路由定义如下:

"routing": {
        "config": {
            "routerClass": "sap.f.routing.Router",
            "viewType": "XML",
            "async": true,
            "viewPath": "com.example.RequestAccess.view",
            "controlId": "fcl",
            "transition": "slide",
            "bypassed": {}
        },
        "routes": [{
            "pattern": "jobprofile",
            "name": "jobprofile",
            "target": [
                "JobProfileSelector",
                "JobProfileOrder"
            ]
        }, {
            "pattern": ":layout:",
            "name": "authorize",
            "target": [
                "Authorization"
            ]
        }],
        "targets": {
            "Authorization": {
                "viewName": "Authorization",
                "controlAggregation": "beginColumnPages"
            },
            "JobProfileOrder": {
                "viewName": "JobProfileOrder",
                "controlAggregation": "midColumnPages"
            },
            "JobProfileSelector": {
                "viewName": "JobProfileSelector",
                "controlAggregation": "beginColumnPages"
            }
        }
    }
},

当我打电话时

var oRouter = this._getRouter();
oRouter.navTo("jobprofile");

它显示一列布局而不是两列。我希望是两列,因为我定义了:

"pattern": "jobprofile",
"name": "jobprofile",
"target": [
    "JobProfileSelector",
    "JobProfileOrder"
]

路径的两个目标 /jobprofile。 我希望该应用程序应如下所示:

我做错了什么?

更新

我创建了一个示例应用 https://github.com/softshipper/fclpoc。 点击 Go to jobprofile

您将重定向到页面 /jobprofile 路径。在这里,我期望它会向我展示 SecondThird 视图,就像主细节视图一样。

您必须调整 FlexibleColumnLayout 的 属性 layout 才能拥有 1、2 或 3 列。默认为 1。

在您的根视图中,您已经对此 属性 进行了绑定,这是个好主意。

<FlexibleColumnLayout id="fcl"
                stateChange="onStateChanged"
                layout="{/layout}"
                backgroundDesign="Solid">
            </FlexibleColumnLayout>

但是,您没有从 App.controller.js 的任何地方调用函数 _updateLayout

我建议重构此控制器以根据活动路线调整布局。