[UI5] ODATA V4中的CRUD

这篇具有很好参考价值的文章主要介绍了[UI5] ODATA V4中的CRUD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

ODATA V4在CRUD方面与V2截然不同。
这篇文章简单介绍V4中是如何进行CRUD操作


一、Read

Model不再有read方法, 一般是把Path绑定到View中进行读取, 如果需要额外的读取数据,可使用如下方法

需要在Context中调用requestObject方法才能实现数据的读取
oModel.bindContext方法需要绑定对应的Entity或者路径

  • 代码:
var oModel = this.getView().getModel()
var oContext = oModel.bindContext("/Mara")
oContext.requestObject().then(function (oData) {
    // 处理成功的回调
    console.log("Data read successfully:", oData);
}).catch(function (oError) {
    // 处理失败的回调
    console.error("Error reading data:", oError);
});

  • 结果:
    [UI5] ODATA V4中的CRUD,UI5,UI5,SAP,Fiori

二、Create

Model不再有create方法

创建和Read不一样,需要调用bindList方法创建Binding,然后使用Binding.create方法创建。

// 创建需要的数据
var json = {
   "Matnr": 'GOOD',
   "Maktx": 'JOB',
   "Meins": '',
}


var oModel = this.getView().getModel();
var oBinding = oModel.bindList("/Mara")
//创建action
var oContext = oBinding.create(json)
//创建回调
oContext.created().then(
   function (res) {
       oModel.refresh()

   },
   function (res) {
       alert(res)
   }
)

如果已经绑定了一个Table,则可以直接拿到Bidning
通过Table Binding创建时不需要刷新也会自动更新数据。

var json = {
    "Matnr": 'GOOD',
    "Maktx": 'JOB',
    "Meins": '',
}

var oTable = this.byId("itemTable");
var oBinding = oTable.getBinding("items"); //get binding

// var oModel = this.getView().getModel();
// var oBinding = oModel.bindList("/Mara")

var oContext = oBinding.create(json)
oContext.created().then(
    function (res) {
        // oModel.refresh()  不需要refresh
    },
    function (res) {
        alert(res)
    }
)

三、Update

Model不再有update方法,通过setProperty方法设置字段属性,即可自动发送PUT请求并修改后端数据

  • 如果是绑定在Table
 var oTable = this.byId("itemTable")
 var selectedItems = oTable.getSelectedItems()

 selectedItems.forEach(item => {
     var oContext = item.getBindingContext()
     oContext.setProperty("Maktx", '测试'); // 方法结束时,自动执行batch,如果是多个字段,则只会提交一次
 });
  • 或者额外绑定Context,然后再进行字段属性变更
 const contextBinding = oModel.bindContext("/Mara('ZZZ')");
 const targetContext = contextBinding.getBoundContext();
 targetContext.setProperty("Maktx", '测试');
  • 当然,也可以绑定到一个组件之后,再进行属性变更
 this.byId("saveBox").bindElement("/Mara('ZZZ')")
 var oContext3 = this.byId("saveBox").getBindingContext()
 oContext3.setProperty("Maktx", '测试');

四、Delete

删除可以通过context进行,也可以通过model进行, 删除操作不需要调用refresh方法,删除后会自动刷新文章来源地址https://www.toymoban.com/news/detail-811313.html

  • 在Table中删除所选行
onDeleteButtonPress: function () {
    var that = this
    var oTable = this.byId("itemTable")
    var selectedItems = oTable.getSelectedItems()

    selectedItems.forEach(item => {
        var oContext = item.getBindingContext()
        oContext.delete().then(
            function (res) {
                // oModel.refresh()
                alert("ok")
            },
            function (res) {
                alert("error")
            })
    });
},
  • 使用Model进行删除
var oModel = this.getView().getModel()
oModel.delete("/Mara('ZZZ')").then(
    function (res) {
        // oModel.refresh()
        // alert("ok")
    },
    function (res) {
        // alert("error")
    })

到了这里,关于[UI5] ODATA V4中的CRUD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • SAP UI5 walkthrough step4 XML Views

    SAPUI5 指出多种VIEW类型,包括XML,HTML,JavaScript 推荐使用XML,因为可读性更高 我们提前介绍一下MVC架构。 MVC是一种软件架构模式,它包括三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这三个组件分别负责处理应用程序的数据、用户界面和用户输入。MVC的设计

    2024年02月04日
    浏览(28)
  • SAP UI5 Gateway Export 和 Client Export 的比较

    SAP UI5 SmartTable 控件支持两种类型的 Excel 导出操作: 客户端导出。这种类型的导出是默认类型。 SAP Gateway Foundation 的 SAP Gateway 导出。 SAP Gateway:如果有超过 100,000 个单元格或最多 500,000 个单元格,则显示警告,具体取决于会话和 ABAP 内存的配置。 SAP Client:根据使用的设备来

    2024年02月04日
    浏览(11)
  • SAP Fiori开发中的JavaScript基础知识15 - 原型,object,constructor,class,继承

    SAP Fiori开发中的JavaScript基础知识15 - 原型,object,constructor,class,继承

    本文将介绍JavaScript中的核心概念 - 原型,并会介绍基于原型的应用场景object,constructor,class,继承。 本文会将这几个核心概念汇总在一篇博客中,因为这些概念是触类旁通的,希望对你有帮助。 在JavaScript中,几乎所有的东西都是对象,每个对象都有一个 特殊的内部属性

    2024年04月23日
    浏览(25)
  • 【SAP UI5 控件学习】DAY04 Input组Part IV 完结&&List组Part I

    【SAP UI5 控件学习】DAY04 Input组Part IV 完结&&List组Part I

    和Data Picker类似,Time Picker允许用户选择相应的时间。 它有以下一些比较常用的属性。 value 用于显示Input中的时间的值,这个属性只能接受字符串的值,如果是 UI5.getInstance() 获取到的时间,需要转化成相应的字符串才可以 valueFormat 用于设置显示日期的格式,这个格式会影响

    2024年02月13日
    浏览(11)
  • 以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

    以前编写好能够正常运行的 SAP UI5 代码,几个月后忽然不能运行了该怎么办?

    以笔者本套教材为例,每一步骤的源代码都托管在本人 Github 仓库里,每次上传之前,都确保本地测试通过。 但笔者编写过程中发现,之前测试通过的代码,可能几个月之后再执行,就会遇到白屏现象,即应用无法正常加载,或者无法在调试模式下正常加载。 举个具体的例子

    2024年02月03日
    浏览(15)
  • SAP Fiori 问题收集

    SAP Fiori 问题收集

    事务代码篇 启动工作台:/N/UI2/FLP 错误日志:   /n/IWFND/ERROR_LOG 服务清单:  /n/IWFND/MAINT_SERVICE  创建语义对象:/N /UI2/SEMOBJ 创建目录: /N/UI2/FLPD_CONF(cross-client)或 /N/UI2/FLPD_CUST(specfic client) 问题篇 问题1.SAP Gateway has been deactivated 去如下路径去激活网关 问题2. No System Alias

    2024年02月13日
    浏览(6)
  • 10. SAP ABAP OData 服务如何支持修改(Update)操作

    10. SAP ABAP OData 服务如何支持修改(Update)操作

    本教程的前九篇文章,我们已经先后介绍了 SAP ABAP OData 服务,如何支持读取和过滤这两种不会引起系统出现 Side Effect(即系统状态被影响)的操作,以及创建(Create)和删除(Delete) 这两种会引起系统出现 Side Effect 的操作。 本文继续介绍 SAP ABAP OData 服务如何实现修改(Update)操作。

    2024年02月01日
    浏览(7)
  • [UI5 常用控件] 01.Text

    [UI5 常用控件] 01.Text

    Text是UI5中最常用的控件之一。 记录Text常用的功能。 控件路径是sap.m.Text Controller View 普通绑定: 别名绑定: binding绑定: 别名binding绑定: bindText bindText with alias bindProperty bindElement setText getText

    2024年01月24日
    浏览(13)
  • [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer

    [UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer

    本章节记录常用控件 IconTabBar,IconTabHeader, TabContainer 其路径分别是: sap.m.IconTabBar sap.m.IconTabHeader sap.m.TabContainer 在SAP UI5中,IconTabBar 是一种用户界面控件,通常用于创建具有多个标签页的导航界面。它允许用户通过标签切换内容区域,每个标签通常与一个特定的视图或功能相关

    2024年02月20日
    浏览(24)
  • [UI5 常用控件] 02.Title,Link,Label

    [UI5 常用控件] 02.Title,Link,Label

    本章节记录常用控件Title,Link,Label。 其路径分别是: sap.m.Title sap.m.Link sap.m.Label Title可以结合其他控件一起使用 可以在Panel-headerToolbar-OverflowToolbar中添加Title 记录Link的5种用法: 绑定press事件,不可用状态,绑定地址,下划线,加粗 Labe一般是给Input添加标签时使用 分别是必输

    2024年01月25日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包