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