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