我正在尝试将一个简单的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
答案 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()
公式。