Как добавить счетчик загрузки для каждого запроса в серверной части Salesforce Cloud

Я хотел бы иметь какой-то перехватчик или что-то, что показывает счетчик загрузки для каждого запроса, сделанного на сервер, то, что я ищу, является наиболее общей его формой. В настоящее время у меня есть компонент 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>

I should somehow add to the controller some logic for other controllers to call it, but I just dont know and not quite sure what is the best way to do it!

Например, у меня есть несколько контроллеров, которые звонят на сервер, и я хотел бы каким-то образом автоматически показывать счетчик загрузки, когда происходят такие действия:

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);
}

person Mizlul    schedule 17.11.2017    source источник


Ответы (1)


Используйте это всякий раз, когда вы звоните на сервер, вызывайте метод 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;
  }
person Chinmaya Hegde    schedule 28.11.2017