レコードの読み込み
- 読み込むレコードの ID
- 読み込んだレコードを割り当てるコンポーネント属性
- 読み込む項目のリスト
fields 属性で、読み込む項目のリストを明示的に指定できます。たとえば、fields="Name,BillingCity,BillingState" です。
または、layoutType 属性を使用してレイアウトを指定することもできます。そのレイアウトのすべての項目がレコードに読み込まれます。レイアウトは通常システム管理者が変更するため、特定の項目を要求する場合 layoutType は fields ほど柔軟ではありません。layoutType を使用してレコードデータを読み込むと、コンポーネントをレイアウト定義に適合させることができます。layoutType の有効な値は、FULL および COMPACT です。
システム管理者がレイアウトに追加した項目にアクセスするには、layoutType を指定します。システム管理者がレイアウトにその項目を追加したかどうかにかかわらず、オブジェクトの項目を取得するには、fields 属性を使用して名前で項目を要求します。特定の項目をコンポーネントで常に使用できるようにするには、レイアウトのすべての項目を取得し、さらにその項目を指定します。
targetRecord には、要求された layoutType に関連する項目、または fields 属性に一覧表示される項目を含む現在のレコードが入力されます。targetFields には、読み込まれたレコードの簡易ビューが入力されます。たとえば Name 項目の場合、v.targetRecord.fields.Name.value は v.targetFields.Name に相当します。
レコードの読み込み
次の例は、Lightning データサービスを使用したレコードの読み込みの要点を示しています。このコンポーネントは、Lightning アプリケーションビルダーのレコードホームページに追加するか、カスタムアクションとして追加することができます。レコード ID は、force:hasRecordId インターフェースによって追加される暗黙的な recordId 属性によって指定されます。
1<aura:component implements="flexipage:availableForRecordHome,force:lightningQuickActionWithoutHeader, force:hasRecordId">
2
3 <aura:attribute name="record" type="Object"/>
4 <aura:attribute name="simpleRecord" type="Object"/>
5 <aura:attribute name="recordError" type="String"/>
6
7 <force:recordData aura:id="recordLoader"
8 recordId="{!v.recordId}"
9 targetFields="{!v.simpleRecord}"
10 targetError="{!v.recordError}"
11 recordUpdated="{!c.handleRecordUpdated}"
12 />
13
14 <!-- Display a lightning card with details about the record -->
15 <div class="Record Details">
16 <lightning:card iconName="standard:account" title="{!v.simpleRecord.Name}" >
17 <div class="slds-p-horizontal--small">
18 <p class="slds-text-heading--small">
19 <lightning:formattedText title="Billing City" value="{!v.simpleRecord.BillingCity}" /></p>
20 <p class="slds-text-heading--small">
21 <lightning:formattedText title="Billing State" value="{!v.simpleRecord.BillingState}" /></p>
22 </div>
23 </lightning:card>
24 </div>
25
26 <!-- Display Lightning Data Service errors, if any -->
27 <aura:if isTrue="{!not(empty(v.recordError))}">
28 <div class="recordError">
29 {!v.recordError}</div>
30 </aura:if>
31</aura:component>1({
2 handleRecordUpdated: function(component, event, helper) {
3 var eventParams = event.getParams();
4 if(eventParams.changeType === "LOADED") {
5 // record is loaded (render other component which needs record data value)
6 console.log("Record is loaded successfully.");
7 } else if(eventParams.changeType === "CHANGED") {
8 // record is changed
9 } else if(eventParams.changeType === "REMOVED") {
10 // record is deleted
11 } else if(eventParams.changeType === "ERROR") {
12 // there’s an error while loading, saving, or deleting the record
13 }
14 }
15})