2017-01-09 1 views
1

Je suis très nouveau dans le développement d'applications d'éclairage de Salesforce. Je cherche de l'aide de votre part pour créer une fonctionnalité dans l'application Lightning. J'ai chargé tous les comptes dans le composant Lightning et j'ai besoin de filtrer les enregistrements en utilisant BillingCity en cliquant sur le nom de la ville de facturation. Une fois la ville de facturation cliquée, tous les comptes liés à cette ville doivent être affichés et le filtre peut être effacé en cliquant sur l'image du filtre (ici j'ai utilisé un cercle noir) qui charge tous les enregistrements sauf les critères particuliers.Besoin d'aide pour filtrer les enregistrements dans l'application de la foudre

S'il vous plaît aider !!!

App Foudre Page principale

Screenshot of page

AccountMainScreen.cmp

<aura:component controller="AccountController"> 
    <aura:attribute name="allaccounts" type="List" description="All Products" /> 
    <aura:handler name="init" value="{!this}" action="{!c.fillAccount}"/> 
    <div class="container"> 
     <div style="font-weight: bold;">Filter by Billing City</div><br/> 
     <div>Bangalore</div><br/> 
     <div>Mountain View</div><br/> 
     <div>Singapore</div><br/> 
     <div> 
     <div style="background-color: #7f7e8a;height: 20px;"></div>  
     <aura:iteration items="{!v.allaccounts}" var="account"> 
      <article class="slds-card"> 
      <div class="slds-card__header slds-grid"> 
      <header class="slds-media slds-media--center slds-has-flexi-truncate"> 
       <div class="slds-media__body slds-truncate"> 
     <h2> 
      <a href="javascript:void(0);" class="slds-text-link--reset"> 
      <span class="slds-text-heading--small">{!account.Name}</span> 
      </a> 
     </h2> 
     </div> 
    </header> 
    </div> 
    <div class="slds-card__body">{!account.BillingCity}</div> 

</article> 
     </aura:iteration> 
     </div> 

    </div> 

</aura:component> 

AccountController.apxc

public class AccountController { 

    @AuraEnabled 
    public static List<Account> getAllAccounts() 
    { 

     List<Account> lstacc=[select Name,BillingCity from Account where BillingCity != null]; 
     return lstacc; 

    } 

} 

AccountMainScreenController.js

({  fillAccount : function(component, event, helper) { 
     helper.getAccountsfromSF(component, event) } }) 

AccountMainScreenHelper.js

({ 
    getAccountsfromSF : function(component, event) { 

     var action = component.get('c.getAllAccounts'); 
     action.setCallback(this,function(actionResult){ 
     component.set('v.allaccounts', actionResult.getReturnValue());   
     }); 
     $A.enqueueAction(action);  

    } 
}) 

Répondre

0

Vous êtes mieux filtrer dans votre requête SOQL.

Sinon, vous pouvez modifier votre attribut avec JS: <aura:attribute name="allaccounts" type="List" description="All Products" />

Par exemple, si vous voulez filtrer les articles que vous pourriez faire quelque chose comme:

var itemList = component.get("v.allAccounts"); 
var newList = []; 
for (var item of ItemList){ 
    if(item.property === condition){ 
    newList.push(item); 
} 
component.set('v.allAccounts',newList); 

qui fonctionnera, mais si vous voulez Faites-le de la meilleure façon que vous pouvez utiliser la carte appropriée, filtrez, réduisez les fonctions en javascript.