Salesforce:如何在Aura属性中获取字段值并在组件

时间:2019-10-08 15:23:06

标签: components salesforce salesforce-lightning

我是Salesforce开发的新手,但不是Web开发的新手(Angular,React,C#,JS等)。因此,我无法像下面的示例那样简单地工作,这令人非常沮丧。我想根据自定义字段值的条件显示内容:

<aura:component controller="MyTestController" implements="flexipage:availableForRecordHome,force:appHostable,lightning:actionOverride,force:hasRecordId">
    <aura:attribute name="oppty" type="Opportunity" />

    <article class="slds-card">
        <aura:if isTrue="{!v.oppty.MyCustomField__c == 'hello'}">
            Hello
        </aura:if>
        <lightning:button label="Click Me" onclick="{!c.handleClick}" class="slds-m-top_medium" />
    </article>    
</aura:component>

在我的JS控制器中,当我console.log()我的属性oppty时,我得到undefined

({
    handleClick : function(cmp, event) {
        var myOpportunity = cmp.get("v.oppty");
        console.log(myOpportunity); // or
        console.log(myOpportunity.MyCustomField__c); 
    }
})

我猜是一个更好的问题:如何从对象“机会”字段获取值并将其绑定到aura属性?

1 个答案:

答案 0 :(得分:0)

我看到您没有包括用于获取记录的代码,甚至没有调用APEX来获取数据。

有两种获取数据的方法。

  1. 来自闪电组件Refer

<aura:attribute name="recordId" type="String" />
<aura:attribute name="opty" type="Opportunity" default="{'sobjectType': 
 'Opportunity'}" />
<aura:attribute name="recordLoadError" type="String" />

<force:recordData aura:id="recordLoader" recordId="{!v.recordId}"
    fields="Name, MyCustomField__c"
    targetFields="{!v.opty}" targetError="{!v.recordLoadError}" />

  1. 使用APEX通话

    在APEX类中创建AuraEnabled方法,并在组件帮助器中使用。