【问题标题】:Optional routing parameters ar not passed on PremPrem 上不传递可选的路由参数
【发布时间】:2022-10-02 05:07:38
【问题描述】:

你好,

我们面临使用路由传递可选参数的问题。 当应用在 BTP 上而不是 Prem 上运行时,参数会传递到另一个视图。

路由定义如下:

{
name: \"routname\",
pattern: \"thisisname/{mandaroty1},{mandatory2}/:?optional:\",
target: [\"targetName\"]
}

这就是我导航的方式:

oRouter.navTo(\"routname\", {
mandatory1: \"test\",
mandatory2: \"test2\",
\"?optional\": {
optional1: \"value1\",
optional2: \"value2\"
}
});

在目标视图中: 在 onInit 中:

var oRouter = this.getRouter();
oRouter.getRoute(\"shapeIT\").attachPatternMatched(this._onRouteMatched, this);

在 _onRouteMatched 中:

_onRouteMatched: function (oEvent) {
            var oArgs = oEvent ? oEvent.getParameter(\"arguments\") : null;
            console.log(oArgs);
}

在 onPrem 的控制台中,我看到如下:

{
mandatory1: \"test\",
mandatory2: \"test2\",
\"?optional\": undefined
}

在 BTP 上,我看到了所有值。

我想念什么?

  • 本地应用运行的是哪个 SAPUI5 版本?您可以通过按[Ctrl]+[Shift]+[Left-Alt]/[Left-Option]+[P] 找到它。
  • 应用程序是否在 FLP shell 中运行?如果它在没有 FLP 的情况下独立运行,问题是否可重现?

标签: sapui5


【解决方案1】:

您正在尝试在可选参数中传递一个对象。这是切刀,但我相信问题是因为这个。我建议使用JSON.stringify() 将可选参数转换为字符串,然后在_onRouteMatched 处理程序上使用JSON.parse() 将字符串转换回JS 对象。

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2014-05-17
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多