【发布时间】:2019-09-12 10:20:43
【问题描述】:
我已经在我的 SAPUI5 应用程序中实现了一个 oData 服务。
按下按钮时,oData 模型createEntry() 被触发,它返回一个带有新创建实体的上下文。
根据 SAPUI5 文档 - Documentation (Creating Entities) 在我的表单上调用 setBindingContext(oContext) 将我的新实体绑定到我的表单就足够了。
但无论我如何尝试,我似乎都无法让绑定工作。输入字段保持为空(尽管实体已设置属性)。
在尝试使用 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>
我打开包含表单的对话框的方法:
openCreateDialog: function() {
this.getOwnerComponent().getModel("oDataModel").refreshSecurityToken(function() {
var oContext = this.getOwnerComponent().getModel("oDataModel").createEntry("/head", {
properties: {
recno: "100"
}
});
this.byId("form").setBindingContext(oContext);
}.bind(this), function(data) {
console.log(data);
}, true);
this.byId("CreateHeadDialog").open();
},
编辑
我已经尝试过 {oDataModel>xxx} 但这不起作用。 另一方面,在我将 oDataModel 设为无名模型后,它似乎工作正常。智能字段正确显示了正确的值,但我在 UI 中所做的更改并未应用于我的智能字段绑定到的属性。
当我提交我的 oDataModel 的待定更改时,我的实体的所有属性仍然未定义,尽管我用正确的值填充了智能字段。
【问题讨论】:
标签: data-binding odata sapui5