首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript: xstate: DevExpress:显示加载面板

JavaScript: xstate: DevExpress:显示加载面板
EN

Stack Overflow用户
提问于 2022-10-24 23:04:22
回答 1查看 20关注 0票数 0

我有一个ajax调用来获取数据,我有一个xstate机器来调用这个ajax调用。我想显示一个旋转轮(DevExpress加载面板),而数据正在获取。如何显示这个加载面板?

代码语言:javascript
复制
    function getTransactions(){
        return new Promise((resolve, reject) => {        
            try {                                    
                resolve(0);
            } catch (error) { reject('[ErrorCode:-96] Unable to retrieve transactions'); }
        
        });
    }

    const loadPanel = $('.loadpanel').dxLoadPanel({
    shadingColor: 'rgba(0,0,0,0.4)',
    position: { of: '#employee' },
    visible: false,
    showIndicator: true,
    showPane: true,
    shading: true,
    hideOnOutsideClick: false
  }).dxLoadPanel('instance');

   /* code */
gettingTransactions: {
   entry: 'showLoadingPanel',
   exit: 'hideLoadingPanel',
  invoke: {
       src: (context, event) => getTransactions(),                                    
       onDone: {
            target: 'success',
            actions: assign({ returnCode: (context, event) => event.data })
        },
        onError: {
              target: 'showingAlert',
              actions: assign({ errorMessage: (context, event) => event.data })
         }                                    
      }                            
     },
    /*code */

我想在执行getTransactions时显示一个加载面板。上面的代码不工作,也没有错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-25 15:56:40

我使用活动来编写显示加载面板的代码。https://xstate.js.org/docs/guides/activities.html#interpretation

代码语言:javascript
复制
function createLoadingActivity(context, activity) {
// Start the beeping activity
var loadPanel = $(".loadpanel").dxLoadPanel({
    shadingColor: "rgba(0,0,0,0.4)",
    position: { my: 'center', at: 'center', of: window },
    visible: false,
    showIndicator: true,
    showPane: true,
    shading: true,
    closeOnOutsideClick: false
}).dxLoadPanel("instance");
loadPanel.show();
const interval = setInterval(() => {
    console.log('Waiting...');        
}, 1000);

// Return a function that stops the beeping activity
return (() => { loadPanel.hide(); clearInterval(interval); });

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74187633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档