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

如何将SAPUI5模型中存储的JSON数组绑定到列表控件?

修正SAP UI5 List数据绑定的问题

我看你代码里的问题主要出在两个地方:List的绑定路径写错了,还有Item的结构不符合SAP UI5的要求,我来一步步帮你改对:

1. 错误的绑定路径

你在List的items属性里写了{/Employees.json},这不对哦!因为你已经通过oModel.loadData("Employees.json")把整个JSON文件加载到模型里了,模型的根节点就是JSON文件里的内容,所以直接用{/Employees}就能指向那个员工数组了——这才是正确的集合路径。

2. List Item的结构错误

SAP UI5的List控件要求items里的内容是ListItem类型的控件(比如StandardListItem),而不是直接把Label放在content里。我们可以用StandardListItem来轻松展示文本,或者用ObjectListItem展示更复杂的结构。

正确的完整代码示例

XML视图部分

<List id="list" items="{/Employees}">
    <!-- 使用StandardListItem展示单条文本,比如用户ID和全名 -->
    <StandardListItem 
        title="{preferredFullName}" 
        description="{userId}" 
        icon="sap-icon://employee" />
    <!-- 如果你想自定义布局,也可以用CustomListItem -->
    <!-- <CustomListItem>
        <VBox>
            <Label text="用户ID: {userId}" />
            <Label text="职位: {jobTitleName}" />
            <Label text="邮箱: {emailAddress}" />
        </VBox>
    </CustomListItem> -->
</List>

控制器里的模型加载代码(这个部分你写的是对的,保持不变)

var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData("Employees.json");
this.getView().setModel(oModel);

关键知识点解释

  • 模型加载后,所有绑定路径都是基于模型的根JSON对象:你的JSON根对象里有Employees数组,所以/Employees就是这个数组的绝对路径。
  • List的items绑定集合后,每个ListItem内部的绑定(比如{userId})是相对路径,自动对应数组里的每一个员工对象的属性。
  • 一定要用SAP UI5提供的ListItem系列控件,不然List无法正确渲染数据。

这样修改后,你的List就能正确显示所有员工的数据啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:16:03