关于前端:关于-SAP-UI5-ODataModelcreateEntry-返回的-context-对象

31次阅读

共计 1307 个字符,预计需要花费 4 分钟才能阅读完成。

在返回的上下文中应用创立的 API 返回的 Promise 对象,以便在长久化或重置时取得告诉。应用 isTransient API,您能够确定创立的上下文是 transient 的还是长久的;请留神,对于尚未在客户端创立但已从后端读取的上下文,API 返回 undefined。

Transient 上下文通常用于绑定表单或弹出窗口,以便最终用户能够查看或批改已创立条目标数据,而后再将其长久化到后端。上下文的数据依据​​创立申请胜利的响应进行更新。请留神,Transient 上下文的门路蕴含客户端生成的 UID 作为长期键谓词,例如产品集(’id-1641815139894-99’)。在应用程序编码中应用此门路时要小心,因为一旦上下文被长久化,它就会变得有效;而后上下文依据长久实体的标准 URL 更改其门路,例如到产品集(’4711’)。

上面的所有实体创立示例都假如模型以批处理模式运行,即应用 useBatch = true 构建。

看个具体的例子:

// create an entry in the Products collection with the specified properties and values as initial data
var oContext = oModel.createEntry("/ProductSet", {properties : {Name : "Laptop X", Description:"New Laptop", Price:"1000", CurrencyCode : "USD"}
});
// bind a form against the transient context for the newly created entity
oForm.setBindingContext(oContext);
 
// submit the changes: creates entity in the back end
oModel.submitChanges({success: mySuccessHandler, error: myErrorHandler});
// handle successful creation or reset
oContext.created().then(function () {/* successful creation */},
  function () { /* deletion of the created entity before it is persisted */}
);
 
// delete the created entity by resetting the corresponding change
oModel.resetChanges([oContext.getPath()], undefined, /*bDeleteCreatedEntities*/true);

createEntry 办法采纳可选的 refreshAfterChange 参数,该参数确定在后端创立胜利后是否刷新所有受影响的绑定。

此参数用于在创立后更新与新实体的列表绑定,使其显示在绑定的表控件中。

在须要进行此类更新的状况下,咱们倡议应用上面形容的 ODataListBinding#create API 而不是 ODataModel#createEntry。

正文完
 0