Data binding 如何将表单元素正确绑定到SAPUI5中新创建的oData实体?

Data binding 如何将表单元素正确绑定到SAPUI5中新创建的oData实体?,data-binding,odata,sapui5,Data Binding,Odata,Sapui5,我已经在SAPUI5应用程序中实现了oData服务 按下按钮后,将触发oData ModelcreateEntry(),返回新创建实体的上下文 根据SAPUI5文档,在我的表单上调用setBindingContext(ocContext)将新实体绑定到表单就足够了 但不管我怎么努力,我似乎都无法使装订工作正常。输入字段保持为空(尽管实体已设置属性) 在尝试使用oData模型进行这种绑定时,是否需要记住一种特殊的语法 我的表格: <f:SimpleForm id="form" editabl

我已经在SAPUI5应用程序中实现了oData服务

按下按钮后,将触发oData Model
createEntry()
,返回新创建实体的上下文

根据SAPUI5文档,在我的表单上调用
setBindingContext(ocContext)
将新实体绑定到表单就足够了

但不管我怎么努力,我似乎都无法使装订工作正常。输入字段保持为空(尽管实体已设置属性)

在尝试使用oData模型进行这种绑定时,是否需要记住一种特殊的语法

我的表格:

<f:SimpleForm id="form" editable="true" layout="ResponsiveGridLayout" title="Address" labelSpanXL="3" labelSpanL="3" labelSpanM="3"
    labelSpanS="12" adjustLabelSpan="false" emptySpanXL="4" emptySpanL="4" emptySpanM="4" emptySpanS="0" columnsXL="1" columnsL="1" columnsM="1"
    singleContainerFullSize="false">
    <f:content>
        <Label text="Recno"/>
        <sf:SmartField id="recno" value="{recno}"/>
    </f:content>
</f:SimpleForm>
编辑

我已经试过了{oDataModel>xxx},但这不起作用。 另一方面,在我把我的oDataModel制作成一个无名的模型之后,它似乎工作得很好。smartfield正确地显示了正确的值,但我在UI中所做的更改不会应用于smartfield绑定到的属性


当我提交oDataModel的挂起更改时,实体的所有属性仍然未定义,尽管我用正确的值填充了smartfields。

您使用的是命名模型:您的模型名为“
oDataModel
”,代码中有以下证明:

.getModel("oDataModel")
在XML视图中使用绑定语法时,需要使用命名模型名称作为字段前缀,如下所示:

<sf:SmartField id="recno" value="{oDataModel>(your-path-to-object)recno}"/>

如果该字段不在列表中,则需要如下引用该字段(或根据recno在json层次结构中的位置进行导航):

 <sf:SmartField id="recno" value="{oDataModel>/recno}"/>


我认为它不需要绑定上下文上的
/
{oDataModel>recno}
应该这样做吗?谢谢你的回复。我已经试过了{oDataModel>xxx}但这不起作用。另一方面,在我将oDataModel设置为无名模型后,它似乎工作正常。smartfield正确地显示了正确的值,但我在UI中所做的更改不会应用于smartfield绑定的属性。如果更改为无名模型解决了您的问题,那么问题在于您表达pa的方式在绑定语句中添加数据。您可以(并且在我看来应该)恢复到命名模型,并了解您的路径问题-这对您将来很有价值。通常,在您的场景中,模型名称后面的斜杠“/”和无斜杠之间的区别(考虑到从命名到未命名的更改)
 <sf:SmartField id="recno" value="{oDataModel>/recno}"/>