找回密码
 立即注册
相关推荐换一批
  1. GA 785-2008 十指指纹图像数据复现动态链接库接口
  2. GB/T 44252.1-2024物联网 运动健康监测设备 第1部分:数据分类和描述
  3. GA 659.1-2006 互联网公共上网服务场所信息安全管理系统数据交换格式第1部分:终端上
  4. GA 659.2-2006 互联网公共上网服务场所信息安全管理系统数据交换格式第2部分:终端下
  5. GA/T 1285-2015 安防指/掌纹识别应用图像数据交换格式
  6. GA/T 1036-2012 消防基础数据平台接口规范
  7. YD/T 2319-2011 数据设备用网络机柜技术要求和检验方法
  8. YD/T 2334-2011 灾备数据一致性测试方法
  9. YD/T 3140-2016 用于内容分发的元数据框架
  10. YDN 034.2-1997 ISDN 用户 一 网络接口规范 第2部分:数据链路层技术规范
  11. GB/T 17699.2-2024行政、商业和运输业电子数据交换 第2部分:复合数据元目录
  12. GB/T 44192-2024政务服务便民热线数据应用指南
  13. GB/T 18721.4-2024印刷技术 印前数据交换 第4部分:显示用宽色域标准彩色图像数据 [
  14. YD/T 2414-2012 数字移动终端外围接口数据交换测试方法
  15. YDB 169-2017 M2M 技术要求(第一 阶段) CoAP 协议绑定
  16. YY 0721-2009/IEC 62274:2005 医用电气设备放射治疗记录与验证系统的安全
  17. YD/T 3038-2016 钓鱼攻击举报数据交换协议技术要求
  18. YD/T 3013-2016 无源光网络(PON)测试诊断技术要求光时域反射仪(OTDR)数据格式
  19. GB/T 38700-2020 特种设备追溯系统数据元
  20. SN/T 2991.4-2016 检验检疫业务信息数据元规范第4部分:疾病监测
  21. SN/T 2991.5-2016 检验检疫业务信息数据元规范第5部分:认证认可类
  22. YD/T 2919-2015 演进的移动分组核心网络(EPC)策略和计费执行功能/承载绑定和事件报?
  23. YD/T 2920-2015 演进的移动分组核心网络(EPC)策略和计费执行功能/承载绑定和事件报?
detailViewJSONModel绑定数据 | 软件设计/软件工程 2022-05-04 318 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品
问题
也许我真的不明白 this.getView().getModel().refresh(true) 或 updateBindings 。 .不知何故,它没有刷新模型,或者我的主要想法是错误的。我的意思是,我可以做一个变通方法来调用一个再次读取 odata 服务的函数,但这不是很好。所以,我在 onInit 中阅读了模型
  1. onInit: function () {
  2.   var that = this;
  3.   var oViewModel = new sap.ui.model.json.JSONModel({});
  4.   this.getView().setModel(oViewModel, "detailView");
  5.   sap.ui.getCore().setModel(oViewModel,"detailView");
  6.   var oFilter = [];
  7.   var zAppFilter = new sap.ui.model.Filter("XXX", sap.ui.model.FilterOperator.EQ, "XXXX");
  8.   oFilter.push(zAppFilter);
  9.   var oModel = that.getView().getModel();
  10.   oModel.setDefaultBindingMode("TwoWay");
  11.   oModel.read("/XXXXSet", {
  12.     filters: oFilter,
  13.     success: function (oData) {
  14.       that.getView().getModel("detailView").setData(oData.results);
  15.     },
  16.     // ...
  17.   });
  18. },
复制代码

我使用这个“detailView”; -JSONModel 在视图中用于绑定。这很好用。 .现在,添加或删除函数,例如:
  1. onDelete: function (oEvent) {
  2.   var that = this;
  3.   var oModel = this.getOwnerComponent().getModel();
  4.   var oSelectedItem = oEvent.getSource().getParent();
  5.   var oSourceID = oSelectedItem.getBindingContext("detailView").getObject().Zid;
  6.   oModel.remove("/XXX(XXX='XXX',XXXX='" + XXXX+ "')", {
  7.     method: "DELETE",
  8.     success: function(data) {
  9.       that.getView().getModel("detailView").refresh(true);
  10.       sap.ui.getCore().getModel("detailView").refresh(true);
  11.     },
  12.     // ...
  13.   });
  14. },
复制代码


那行不通。 .但为什么?我的意思是当我做 updateBindings 什么的时候。我是在理解还是做错了什么?

回答
您的 JSONModel 没有连接到任何东西。只是一堆 JSON 数据。因此,如果您让它刷新,它应该如何知道从哪里获取新数据?

刷新不做的是获取新数据。

refresh 实际上(在 JSONModel 中)所做的是告诉绑定它有新数据。例如,其中一个绑定可以是 sap.m.List 的一项。然后列表知道需要重新提交以显示新数据。

如果您没有获取新数据并调用刷新,则不会发生任何事情。实际数据保持不变。

如果您已经有一个完美的 ODataModel,那么首先使用一个额外的 JSONModel 并不是很好。如果您刚刚移除 JSONModel 并将视图绑定到 ODataModel,则调用 remove 后视图将自动更新。
  1. <Table id="table0" items="{/XXXXSet}">
  2. Don't forget to remove detailView from your cells.
复制代码

要将视图绑定到 ODataModel,您可以从





上一篇:如何将 gitlab ci 中的作业限制为与模式匹配的标记?
下一篇:如何将 Azure DevOps 项目转移到另一个组织?