闪电组件,在控制器中检索查找记录值

时间:2019-05-17 16:56:56

标签: javascript salesforce field lightning

我正在尝试将一个简单的OnClick Javascript按钮转换为Lightning。这个OnClick非常简单,它只是打开一个URL,但是它将父记录上的值用作URL的一部分。也就是说,机会对象上的按钮将从其父帐户的This_Field__c字段中获取部分URL:

    window.open('https://www.salesforce.com/'+'{!Account.This_Field__c}'+'/info');

因此,如果该字段的值为XYZ,则将打开页面https://www.salesforce.com/XYZ/info

在闪电组件中获取Account.This_Field__c的最简单方法是什么?

考虑使用Apex控制器,但这似乎有些过分。尝试使用force:recordData似乎没有用,可能是因为它在父记录上有效。我们不希望在“机会”中有更多字段,否则我可以尝试使用公式。

window.open('https://www.salesforce.com/'+'{!Account.This_Field__c}'+'/ info');

如果该字段的值为XYZ,则将打开页面https://www.salesforce.com/XYZ/info

1 个答案:

答案 0 :(得分:0)

<force:recordData>确实支持关系字段,尽管此事实已埋藏在文档的Lightning Data Service Considerations页面中:

  

Lightning Data Service支持跨域字段,最大深度为五个级别。

这是一个非常简单的示例:

<aura:component implements="force:hasRecordId,flexipage:availableForRecordHome">
    <aura:attribute name="targetRecord" type="Object" />

    <force:recordData 
                      recordId="{! v.recordId }"
                      fields="Account.Website"
                      targetFields="{! v.targetRecord }"
                      />

    <aura:if isTrue="{! not(empty(v.targetRecord.Account.Website)) }">
        <a href="{! v.targetRecord.Account.Website }">Account Website</a>
    </aura:if>
</aura:component>

Apex控制器也可以使用,但是会增加复杂性,因为您必须编写Apex,JavaScript和Apex单元测试。

最简单的解决方案是商机上的HYPERLINK()公式。