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

如何在SAP UI5详情视图中正确引用导航属性的实体字段?

正确实现方案


1. 修正视图绑定语法

你当前的绑定写法存在语法错误,正确绑定格式如下:

<m:Input value="{TechnicalSpecs/Equipment}" editable="false" visible="true" id="DetailEquipment"/>

如果你的OData服务使用了命名模型,需要加上模型前缀,例如模型名为odataModel时写法为:

<m:Input value="{odataModel>TechnicalSpecs/Equipment}" editable="false" visible="true" id="DetailEquipment"/>

你之前写法中的/开头是绝对路径,在视图已绑定到PROJEKT单实例的场景下不需要加;>是模型分隔符只有使用命名模型时才需要,且模型名要写在>左侧,原写法不符合UI5数据绑定规则。

2. 主动指定导航属性加载参数

OData默认不会在请求主实体时自动加载关联的导航属性数据,你需要在绑定PROJEKT实体实例时添加$expand参数,主动要求服务端返回关联的TechnicalSpecs数据。
如果是在路由匹配后手动绑定视图元素,代码示例:

onRouteMatched: function(oEvent) {
    const sPspnr = oEvent.getParameter("arguments").pspnr; // 取路由传递的项目主键
    this.getView().bindElement({
        path: `/PROJEKTSet('${sPspnr}')`,
        parameters: {
            $expand: "TechnicalSpecs"
        }
    });
}

如果是通过manifest.json配置路由自动绑定,在对应目标的binding配置中添加expand参数:

"targets": {
    "projectDetail": {
        "viewName": "ProjectDetail",
        "binding": {
            "path": "PROJEKTSet",
            "parameters": {
                "$expand": "TechnicalSpecs"
            }
        }
    }
}

验证方法

打开浏览器开发者工具的网络面板,查看PROJEKT实体的请求URL后缀是否带有$expand=TechnicalSpecs,确认响应报文中包含TechnicalSpecs的字段数据后,视图对应字段即可正常渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:09:08