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

SAPUI5可复用Table Fragment XML数据绑定方案咨询

解决方案

你选择Fragment实现该复用场景的思路完全可行,问题出在属性名误用和绑定路径配置错误,纯XML无JS的实现方式如下:

1. 修改可复用Fragment的绑定配置

把Fragment内Table的items绑定指向当前具名模型的上下文根即可,内部字段的相对路径不需要调整:

<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
    <!-- 绑定当前dataModel上下文指向的数组 -->
    <Table items="{dataModel>}">
        <columns>
            <Column>
                <Text text="Name"/>
            </Column>
            <Column>
                <Text text="Amount"/>
            </Column>
        </columns>
        <items>
            <ColumnListItem>
                <cells>
                    <ObjectIdentifier title="{dataModel>name}"/>
                    <Text text="{dataModel>amount}"/>
                </cells>
            </ColumnListItem>
        </items>
    </Table>
</core:FragmentDefinition>

2. 修改视图中Fragment的调用方式

你之前写的objectBindings不是框架支持的合法属性,要给Fragment传递绑定上下文,需要用core:bind-context属性指定路径。

UI5 1.87及以上版本(直接绑定,无额外容器)

1.87版本后Fragment原生支持直接设置绑定上下文,不需要外层嵌套容器:

<!-- 渲染/data/a数组对应表格 -->
<core:Fragment 
    type="XML" 
    fragmentName="your.project.namespace.view.ReusableTable"
    core:bind-context="{dataModel>/data/a}"
/>
<!-- 渲染/data/b数组对应表格 -->
<core:Fragment 
    type="XML" 
    fragmentName="your.project.namespace.view.ReusableTable"
    core:bind-context="{dataModel>/data/b}"
/>

低版本兼容写法

如果项目使用的UI5版本低于1.87,可以在外层套一个轻量容器传递绑定上下文,依然不需要任何JS代码:

<VBox core:bind-context="{dataModel>/data/a}">
    <core:Fragment type="XML" fragmentName="your.project.namespace.view.ReusableTable"/>
</VBox>
<VBox core:bind-context="{dataModel>/data/b}">
    <core:Fragment type="XML" fragmentName="your.project.namespace.view.ReusableTable"/>
</VBox>

问题原因说明

  • 自定义的objectBindings属性不会被SAPUI5框架解析,自然无法传递绑定路径
  • Fragment本身会继承外层设置的绑定上下文,只要把Table的items绑定指向当前上下文的根节点,就能自动读取传入的数组数据,内部行项目的相对路径绑定会自动对应数组项的属性,不需要额外调整。

该实现完全符合你纯XML配置、无控制器JS代码的要求,Fragment对于这类无独立复杂逻辑的控件组合复用场景,确实比自定义控件、独立组件更轻量高效,选型没有问题。如果后续需要扩展表格的列配置、事件处理,也可以通过Fragment参数传递的方式继续保持纯XML配置的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:27:24