You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FCL打开中间列第二页时第一页实体调用被覆盖及参数问题咨询

SAP UI5双列布局页面导航数据加载问题解答

问题背景

Object页面[ProgramDetails page]默认加载时会发起实体调用。从该页面导航至双列布局的另一页面后,两个页面均会重新加载数据并发起必要调用,但对象页面的实体调用被覆盖,无法传递正确参数。


问题1:是否可限制重新加载,为第一页使用同一会话?

可以通过以下配置实现:

  • 确保双列布局的两个页面共享同一OData模型实例,避免重复初始化模型导致上下文丢失
  • 在manifest.json的路由定义中,为双列布局的主页面设置"preservePageInSplitContainer": true,防止导航时销毁原页面控件,保留已加载的数据上下文
  • 导航时调用router.navTo传入{ preserveContext: true }参数,确保原页面绑定的上下文不被重置

问题2:是否可在实体调用URL中定义参数名称?

可以通过调整绑定配置或代码实现,生成(ID=xxx)格式的请求参数:

  1. Manifest绑定配置:在页面的绑定路径中显式指定键参数名称
    "pages": {
      "ProgramDetails": {
        "entitySet": "Program",
        "bindingPath": "/Program(ID='{urlParameters>ID}')"
      }
    }
    
  2. 代码手动发起请求:调用OData模型的read方法时构造完整的实体路径
    const sProgramId = "b73c75c2-a52f-4948-914e-36a08f534b09";
    this.getModel().read(`/Program(ID='${sProgramId}')`, {
      urlParameters: {
        "$select": "ID,description",
        "$expand": "DraftAdministrativeData($select=DraftIsCreatedByMe,DraftUUID),type($select=id,name)"
      },
      success: (oData) => {
        // 处理返回数据
      }
    });
    
  3. 控件级绑定调整:如果是控件绑定,确保绑定路径使用(ID='{...}')格式,而非简写的({...})

只要后端OData服务兼容EntitySet(KeyName=KeyValue)的请求格式,前端配置后就能生成符合要求的URL。


内容的提问来源于stack exchange,提问作者Sindhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:50:01