2017-04-06 1 views
0

J'ai un composant Lightning qui écoute un événement Compte mis à jour et récupère les contacts et utilisateurs associés. Il affiche ensuite le compte pour lequel les contacts sont associés à un total de contacts et d'utilisateurs, et crée une carte SLDS avec des mosaïques répétées.aura: si n'évalue pas et aura: itération ne pas afficher

Cela fonctionnait très bien jusqu'à ce que je change l'en-tête pour dire «Chargement» pendant le chargement des contacts. J'ai ajouté deux nouveaux Attributs (un pour contenir le statut de chargement et un pour contenir le total de Contacts et Utilisateurs) et ajouté la logique pour mettre à jour ces attributs. D'une façon ou d'une autre, cela l'a brisé, et je n'arrive pas à comprendre comment ça se brise. En fonction des journaux de console et de débogage, tout va bien, d'après les journaux de console et de débogage. Les contacts et les utilisateurs sont récupérés correctement à partir du contrôleur Apex et ces valeurs sont écrites dans les attributs. Rien n'est en train d'être mis à jour, cependant.

ContactTable.cmp

<header class="slds-media slds-media--center slds-has-flexi-truncate"> 
 
    <div class="slds-media__body"> 
 
     <h2> 
 
      <span class="slds-text-heading--large"> 
 
       <aura:if istrue="{!v.accountName}"> 
 
        Contacts For {!v.accountName}: {!v.contactsLoadingStatus} 
 
        <aura:set attribute="else"> 
 
         Contacts: - Please Select a Clinic - 
 
        </aura:set> 
 
       </aura:if> 
 
      </span> 
 
     </h2> 
 
    </div> 
 
</header> 
 

 
......... 
 
(Contacts Tile Iterator) 
 
......... 
 

 
<aura:if istrue="{!v.contacts.length > 0}"> 
 
    <h2 style="padding-left: 1.5rem;"><span class="slds-text-heading--medium">Contacts</span></h2> 
 
    <div class="slds-card__body--inner slds-grid slds-wrap" style="margin-bottom: 30px; height: 20rem;  overflow: auto; border: 1px solid rgba(128, 128, 128, 0.32); border-radius: 10px;"> 
 
     <aura:iteration items="{!v.contacts}" var="singleContact"> 
 
      <c:ContactTableContactCard singlecontact="{!singleContact}" /> 
 
     </aura:iteration> 
 
    </div> 
 
</aura:if>

ContactTableController.js

handleUpdateAccountEvent: function(component, event, helper){ \t \t 
 
    helper.updateAccount(component, event); 
 
    component.set('v.selectedContacts', null); 
 
    component.set('v.total', 0); 
 

 
    console.log('Account ID: ' + component.get('v.accountID')); 
 
    console.log('Account Name: ' + component.get('v.accountName')); 
 

 
    if(component.get('v.accountID')){ 
 
    console.log('Grabbing contacts and team members'); 
 
    component.set('v.contactsLoadingStatus', 'Loading...'); 
 
    helper.setContacts(component, helper); 
 
    helper.setTeamMembers(component, helper); \t \t 
 
    } 
 
    else{ 
 
    component.set('v.contacts', null); 
 
    component.set('v.teamMembers', null); 
 
    } 
 
},

ContactTableHelper.js

setContacts: function (component, helper) { 
 
    var action = component.get("c.getContacts"); 
 
    var accountID = component.get("v.accountID"); 
 
    action.setParams({'accountId':accountID}); 
 

 
    action.setCallback(this, function(response){ 
 
    if(component.isValid()){ 
 
     var state = response.getState(); 
 
     if(state === 'SUCCESS'){ 
 
     var contacts = response.getReturnValue(); 
 
     component.set("v.contacts", contacts); 
 

 
     var total = component.get("v.total"); 
 
     total += contacts.length; 
 
     component.set("v.total", total); 
 

 
     component.set("v.contactsLoadingStatus", total + " Records"); 
 

 
     contacts = component.get('v.contacts'); 
 
     console.log('Grabbing contacts.... Done'); 
 
     console.log('contacts:'); 
 
     console.log(contacts); 
 

 
     } 
 
     else{ 
 
     console.log('There was an issue in retrieving the contacts.'); 
 
     console.log(state); 
 
     if(state === 'ERROR'){ 
 
      var errors = response.getError; 
 
      for(var i = 0; i < errors.length; i++){ 
 
      console.log(errors[i].message); 
 
      } 
 
     } 
 
     } 
 
    } 
 
    }); 
 

 
    $A.enqueueAction(action); 
 
    console.log('Grabbing contacts....'); 
 
}, 
 

 
updateAccount: function(component, event){ 
 
    var accountID = event.getParam("accountID"); 
 
    component.set("v.accountID", accountID); 
 

 
    var accountName = event.getParam("accountName"); 
 
    component.set("v.accountName", accountName); 
 
    console.log('finished updateAccount'); 
 
},

J'ai laissé setTeamMembers parce qu'il est le même, plus ou moins, comme setContacts.

pertinente journal de la console:

terminé updateAccount

ID du compte: 001F0000013YX5DIAW

Nom du compte: ~ ~ NOM.

contacts Saisissant et les membres de l'équipe

Saisissant contacts ....

Saisissant membres de l'équipe ....

contacts Saisissant .... Fait

contacts:

[objet, objet, objet]

G membres de l'équipe rabbing .... Fait

: Membres

[objet, objet, objet, objet, objet, objet]

Répondre

0

I figured it out.J'ai utilisé mon code IDE de formatter qui a changé

<aura:if isTrue="">

à

<aura:if istrue="">

Donc, si quelqu'un passe d'autre dans ce problème, vérifiez votre orthographe.