如何为后端Salesforce Cloud上的每个请求添加加载微调器

时间:2017-11-17 07:27:56

标签: salesforce salesforce-service-cloud salesforce-lightning

我想有一些拦截器或某些东西显示每个请求服务器的加载微调器,我正在寻找的是它的最一般形式。我目前有一个spinner组件,其中包含视图和控制器,但我只是想知道如何为每个http请求创建这个常规,将它显示在视图中,可能在标题中或其他位置。

这是视图部分:

<aura:component >
<aura:attribute name="visible" type="Boolean" default="false"/>

<div class="{!if(v.visible, '', 'slds-hide')}">
    <div class="slds-spinner_container">
        <div role="status" class="slds-spinner slds-spinner_medium">
            <span class="slds-assistive-text">Loading</span>
            <div class="slds-spinner__dot-a"></div>
            <div class="slds-spinner__dot-b"></div>
        </div>
    </div>
</div>

我应该以某种方式向控制器添加一些其他控制器调用它的逻辑,但我不知道并且不太确定最好的方法是什么!

对于ex,我有一些控制器调用服务器,我想以某种方式自动显示加载微调器发生此类操作时:

doInit : function(component, event, helper)
{
    var getTeamAction = component.get("c.getCurrentUserTeam");
    getTeamAction.setCallback(this, function(response) {
        if(response)
        {
            var t= response.getReturnValue();
            component.set("v.millTeamMembers", t);
        }
        else
        {
            console.log("Unable to getteam");
        }
    });

    $A.enqueueAction(getTeamAction);
}

1 个答案:

答案 0 :(得分:0)

使用此方法,每当您调用服务器时调用doShowModalProcessing(comp)方法并在获得响应后调用doHideModalProcessing(comp)。

标记:

<div aura:id="modalProcessing" class="busy-backdrop busy-backdrop--open hideDiv">
    <div class="slds-spinner--brand slds-spinner slds-spinner--large" aria-hidden="false" role="alert">
        <div class="slds-spinner__dot-a"></div>
        <div class="slds-spinner__dot-b"></div>
    </div>
</div>

帮助者:

doShowModalProcessing : function(component) {        
    var modal = component.find("modalProcessing");
    $A.util.removeClass(modal, 'hideDiv');
},
doHideModalProcessing : function(component) {

    var modal = component.find("modalProcessing");
    $A.util.addClass(modal, 'hideDiv');
},

CSS:

   .THIS.hideDiv {
    display: none;
  }