この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

レコードの削除

Lightning Data Service を使用してレコードを削除するには、force:recordPreview コンポーネントのdeleteRecord をコールして、削除操作の完了後に呼び出されるコールバック関数を渡します。

Lightning Data Service の削除操作は単純明快です。force:recordPreview タグに最小限の詳細を含めることができます。レコードデータが不要になる場合は、fields 属性を単に Id に設定します。削除が唯一の操作であることがわかっている場合は、任意の mode を使用できます。

削除操作を実行するには、適切なコントローラアクションハンドラから、force:recordPreview コンポーネントの deleteRecord をコールします。deleteRecord は、操作の完了時に呼び出されるコールバック関数という 1 つの引数を取ります。このコールバック関数は、その唯一のパラメータとして SaveRecordResult オブジェクトを受け取ります。SaveRecordResult には、操作の成否や、結果の処理に使用できるその他の詳細を示す state 属性が含まれます。

レコードの削除

次の例は、Lightning Data Service を使用したレコードの削除の要点を示しています。このコンポーネントは、[レコードを削除] ボタンをレコードページに追加して、表示されているレコードを削除できるようにします。レコード ID は、force:hasRecordId インターフェースによって追加される暗黙的な recordId 属性によって指定されます。

ldsDelete.cmp
1<aura:component
2    implements="flexipage:availableForRecordHome,force:hasRecordId">
3
4    <aura:attribute name="recordError" type="String" access="private"/>
5    <force:recordPreview aura:id="recordHandler"
6      recordId="{!v.recordId}"
7      fields="Id"
8      targetError="{!v.recordError}"
9      />
10
11    <!-- Display Lightning Data Service errors, if any -->
12    <aura:if isTrue="{!not(empty(v.recordError))}">
13        <div class="recordError">
14            <ui:message title="Error" severity="error" closable="true">
15                {!v.recordError}
16            </ui:message>
17        </div>
18    </aura:if>
19
20    <div class="slds-form-element">
21        <ui:button
22            label="Delete Record"
23            press="{!c.handleDeleteRecord}"
24            class="slds-button slds-button--brand" />
25    </div>
26
27</aura:component>
force:recordPreview タグには、recordId と、最少限絶対必要なものだけを記載したほぼ空の fields リストのみが含まれます。たとえば、確認メッセージの一部として、ユーザインターフェースにレコード値を表示したい場合は、この最小限の削除例ではなく、読み込み操作の場合と同様に、force:recordPreview タグを定義します。
ldsDeleteController.js
1({
2    handleDeleteRecord: function(component, event, helper) {
3        component.find("recordHandler").deleteRecord($A.getCallback(function(saveResult) {
4            if (saveResult.state === "SUCCESS" || saveResult.state === "DRAFT") {
5
6                // Deleted! Show a toast UI message
7                var resultsToast = $A.get("e.force:showToast");
8                resultsToast.setParams({
9                    "title": "Deleted",
10                    "message": "The record was deleted."
11                });
12                resultsToast.fire();
13
14                // Navigate to deleted record's object home
15                var goToObjectHome = $A.get("e.force:navigateToObjectHome");
16                goToObjectHome.setParams({
17                    "scope": saveResult.entityApiName
18                });
19                goToObjectHome.fire();
20            }
21            else if (saveResult.state === "INCOMPLETE") {
22                console.log("User is offline, device doesn't support drafts.");
23            }
24            else if (saveResult.state === "ERROR") {
25                console.log('Problem deleting record, error: ' +
26                            JSON.stringify(saveResult.error));
27            }
28            else {
29                console.log('Unknown problem, state: ' + saveResult.state +
30                            ', error: ' + JSON.stringify(saveResult.error));
31            }
32        }));
33    }
34})
レコードが削除された時点で、別のページに移動する必要があります。そのレコードページに留まれば、コンポーネントが更新されたときに「レコードが見つかりません」というエラーが表示されます。ここでは、コールバック関数に提供された SaveRecordResultentityApiName プロパティをコントローラが使用して、オブジェクトのホームページに移動します。