需要帮助过滤闪电应用程序中的记录

时间:2017-01-09 07:02:40

标签: salesforce salesforce-communities

我是salesforce照明应用程序开发的新手。我正在寻找一些帮助您在闪电应用程序中创建功能。我已将所有帐户加载到闪电组件中,我需要使用BillingCity过滤记录,方法是单击“结算”城市名称。单击计费城市后,应显示与该城市相关的所有帐户,并通过单击清除过滤器图像(此处我使用黑色圆圈)清除过滤器,该图像将加载除特定条件之外的所有记录。

请帮助!!!

闪电应用主页

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

    }
})

1 个答案:

答案 0 :(得分: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中的功能。