2017-01-09 6 views
1

Я очень новичок в разработке приложений для освещения продаж. Я ищу вам некоторую помощь в создании функциональности в приложении для молнии. Я загрузил все учетные записи в компонент молнии, и мне нужно отфильтровать записи, используя BillingCity, щелкнув имя города биллинга. После щелчка по городу фактурирования все учетные записи, относящиеся к этому городу, должны быть отображены, и фильтр можно очистить, щелкнув изображение прозрачного фильтра (здесь я использовал черный круг), который загружает все записи, кроме определенных критериев.Нужна помощь в фильтрации записей в приложении молнии

Пожалуйста, помогите !!!

Lightning App Главная

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

    } 
}) 

ответ

0

Вы лучше от фильтрации в пределах вашего SOQL запроса.

В противном случае, вы можете изменить атрибут с JS: <aura:attribute name="allaccounts" type="List" description="All Products" />

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

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

Это будет работать, но, если хотите сделайте это наилучшим образом, как вы можете использовать соответствующие карты, фильтры, уменьшить функции в javascript.