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

Model.createEntry绑定表单后输入值变更未更新模型问题求助

问题解决:表单输入未同步到OData模型的待变更列表

核心原因

ODataModel 默认绑定模式为 OneWay,UI控件的修改不会自动同步回模型;只有显式设置双向绑定(TwoWay),输入值才会被捕获到模型的待变更(pending changes)中。此外还需检查实体属性的可写性和绑定路径正确性。

解决方案

1. 为输入控件设置双向绑定

在每个Input的value绑定中显式指定mode="TwoWay",示例:

<Label text="Description" required="true"/>
<Input value="{path: 'Qmtxt', mode: 'TwoWay'}"/>
<Label text="Material"/>
<Input id="matnr" value="{path: 'Matnr', mode: 'TwoWay'}"/>
<Label text="Plant"/>
<Input id="werks" value="{path: 'Mawerk', mode: 'TwoWay'}"/>
<!-- 其他输入控件同理添加 mode: 'TwoWay' -->

2. 全局设置模型默认绑定模式(可选)

如果希望所有绑定默认都是双向的,可在manifest.json的模型配置中设置defaultBindingMode:

"models": {
    "": {
        "dataSource": "mainService",
        "settings": {
            "defaultBindingMode": "TwoWay",
            "odataVersion": "2.0" // 根据你的OData版本调整
        }
    }
}

3. 验证元数据中属性的可写性

检查OData服务元数据里,LatentDefectSet的对应属性是否标记为可更新:

<Property Name="Qmtxt" Type="Edm.String" sap:updatable="true"/>

若sap:updatable为false,模型会忽略该属性的变更,需调整服务端配置。

4. 确认绑定路径拼写正确

确保输入控件绑定的属性名(如Qmtxt、Matnr)与元数据中的实体属性名完全一致(大小写敏感),避免拼写错误导致无法同步。

验证修改

修改后,输入值并点击保存按钮前,调用model.getPendingChanges()应该能看到所有修改过的属性;执行model.submitChanges()即可将所有变更提交到服务端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 18:05:08