加载元数据时如何设置繁忙状态

2020-09-24 04:52发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我正在开发一个使用flexColumnLayout的主从应用程序。 我要根据指南(https://ux.wdf.sap.corp/fiori-design-web/busy-handling/)添加忙处理:在加载元数据时将页面设置为忙,而在加载后不忙。 我不知道在哪个函数中调用setBusy()。 你有什么主意吗?

非常感谢您:)

最好的问候

Y

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的

我正在开发一个使用flexColumnLayout的主从应用程序。 我要根据指南(https://ux.wdf.sap.corp/fiori-design-web/busy-handling/)添加忙处理:在加载元数据时将页面设置为忙,而在加载后不忙。 我不知道在哪个函数中调用setBusy()。 你有什么主意吗?

非常感谢您:)

最好的问候

Y

付费偷看设置
发送
7条回答
土豆飞人
1楼-- · 2020-09-24 05:17

您好,我认为您刚刚共享的链接仅在您的Intranet上可用;)

所以,让我们从头开始。 每个扩展sap.ui.core.Control的控件(可能是控件和自定义控件的99%;)都将允许您处理繁忙状态。

如果需要,可以按以下方式处理页面的全局繁忙状态:

显示繁忙指示器

 sap.ui.core.BusyIndi​​cator.show(<毫秒数>); 

隐藏忙碌指示器

 sap.ui.core.BusyIndi​​cator.hide(); 

通常,知道何时必须显示/隐藏繁忙指示器的经验法则是:

  • 在每个oDataModel读取/bindItems之前显示它
  • 在成功/错误回叫时将其隐藏
暮风yp
2楼-- · 2020-09-24 05:34

我想可以在Extranet上访问此链接:)

https://experience.sap.com/fiori -design-web/忙碌处理/

浮生未央
3楼-- · 2020-09-24 05:12

因此,第一部分很容易,您只需要

 sap.ui.core.BusyIndi​​cator.show(); 

在您的Component.js上

对于第二方,也许我需要知道您为什么要等待元数据调用。 通常,在元数据中,您没有真实的数据,而只有元数据,因此不会向用户提供要显示的内容。

您能再说明一下您的情况吗?

无论如何,您可以在metadataLoaded事件上隐藏繁忙的加载。 您只需要使用以下API将其附加到oDataModel(v2): https://openui5.hana.ondemand.com/#/api/sap.ui.model.odata.v2.ODataModel/methods/attachMetadataLoaded

Aaron 3364
4楼-- · 2020-09-24 05:26

你好Emanuele,

感谢您的回复:P

我想在启动应用程序时将整个页面设置为忙碌,并在加载odata元数据后将其设置为空闲。元数据请求会自动调用。 它与您知道调用它的odata常规调用不同。

宇峰
5楼-- · 2020-09-24 05:37

您好王应

首先,您需要找到要具有繁忙指示符的包装器。

如果要使用表格:

 var table = this.getView()。byId(" tableId"); 
然后,您可以在表上设置忙碌指示器:
 table.setBusy(true); 

然后在第二部分中,您需要知道呼叫完成的时间。 有一些方法可以使人们知道这一点,比如说有希望。

如果这是一个诺言/您可以创建一个诺言,则可以执行以下操作:
 getSomeDataFunc:function(){
     返回新的Promise(function(resolve,reject){
         var oModel = new sap.ui.model.odata.ODataModel({
 serviceUrl:"/img/sap/opu/odata/sap/SERVICE_NAME/",
             json:是
  });

 oModel.read(sPath,null,null,
     函数(oData){
        //我得到了数据并返回了
 resolve(oData);
     },
     函数(oError){
        //出了点问题,这是错误消息
         reject(oError);
     });

 }
 }

 this.getSomeDataFunc()。then(function(data){
    //我现在知道数据提取已完成,我将做我的竞标!
     table.setBusy(false);
 })

如果在加载视图时获取数据,则要在onInit中执行此操作:function(){}您还希望获取视图ID而不是表ID。

wang628962
6楼-- · 2020-09-24 05:27
< p>亲爱的伊曼纽尔,

我在外部网上找到了链接:https://experience.sap.com/fiori-design-web/busy-handling /

场景是:"首先,加载UI描述和元数据。这是基本功能UI的最低要求。在获得此数据之前,需要阻止应用程序UI。加载元数据后,我们 可以在适当的情况下部分解除对UI的阻塞。将主列表和详细信息区域设置为忙碌状态,直到数据被加载为止。一旦主列表区域的数据可用,便会删除忙碌状态。 对于详细信息区域的异步加载,其繁忙状态是单独设置的。"

一周热门 更多>