我是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属性?
答案 0 :(得分:0)
我看到您没有包括用于获取记录的代码,甚至没有调用APEX来获取数据。
有两种获取数据的方法。
<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}" />
使用APEX通话
在APEX类中创建AuraEnabled方法,并在组件帮助器中使用。