Skip to content

Instantly share code, notes, and snippets.

@JitendraZaa
Last active July 31, 2019 12:25
Show Gist options
  • Save JitendraZaa/b108e7428148fc15a9932c3fab2d1533 to your computer and use it in GitHub Desktop.
Save JitendraZaa/b108e7428148fc15a9932c3fab2d1533 to your computer and use it in GitHub Desktop.
Salesforce Lightning Data Service Demo Code
<aura:component implements="force:appHostable,
flexipage:availableForRecordHome,force:hasRecordId"
access="global" >
<aura:attribute name="account" type="Object"
description="The record object to be displayed"/>
<aura:attribute name="accountRecord" type="Object"
description="A simplified view record object to be displayed"/>
<aura:attribute name="recordSaveError" type="String"
description="An error message bound to force:recordData"/>
<force:recordData aura:id="accRec"
layoutType="FULL"
recordId="{!v.recordId}"
targetError="{!v.recordSaveError}"
targetRecord="{!v.account}"
targetFields="{!v.accountRecord}"
mode="EDIT"
recordUpdated="{!c.recordUpdated}"/>
<div class="slds-box">
<div class="slds-text-heading_medium">
Edit Account - Data Service
</div>
<div class="slds-form--stacked slds-tile">
<div class="slds-form-element">
<label class="slds-form-element__label" >Name: </label>
<div class="slds-form-element__control">
<ui:inputText aura:id="recordName" class="slds-input"
value="{!v.accountRecord.Name}"
required="true"/>
</div>
</div>
<div class="slds-form-element">
<label class="slds-form-element__label" >Company Email: </label>
<div class="slds-form-element__control">
<ui:inputText aura:id="companyEmail" class="slds-input"
value="{!v.accountRecord.Company_Email__c}"
required="true"/>
</div>
</div>
<div class="slds-form-element">
<ui:button aura:id="saveAccount"
buttonTitle="Save Account" class="button" label="Save Account" press="{!c.saveAccount}"/>
</div>
</div>
<aura:if isTrue="{!not(empty(v.recordSaveError))}">
<br />
<div class="error slds-box">
{!v.recordSaveError}
</div>
</aura:if>
</div>
</aura:component>
.THIS .error {
background-color: #c23934;
border: 1px solid #c23934 ;
color: white;
}
({
saveAccount : function(component, event, helper) {
helper.saveAccount(component, event, helper);
},
recordUpdated : function(component, event, helper) {
helper.recordUpdated(component, event, helper);
}
})
({
saveAccount : function(component, event, helper) {
component.find("accRec").saveRecord($A.getCallback(function(saveResult) {
if (saveResult.state === "SUCCESS" || saveResult.state === "DRAFT") {
console.log("Save completed successfully.");
} else if (saveResult.state === "INCOMPLETE") {
component.set("v.recordSaveError","User is offline, device doesn't support drafts.");
} else if (saveResult.state === "ERROR") {
var errMsg = "";
// saveResult.error is an array of errors,
// so collect all errors into one message
for (var i = 0; i < saveResult.error.length; i++) {
errMsg += saveResult.error[i].message + "\n";
}
component.set("v.recordSaveError", errMsg);
} else {
component.set("v.recordSaveError",'Unknown problem, state: ' + saveResult.state + ', error: ' +
JSON.stringify(saveResult.error));
}
}));
},
recordUpdated : function(component, event, helper){
var changeType = event.getParams().changeType;
if (changeType === "CHANGED") {
component.find("accRec").reloadRecord();
}
}
})
@sanatarique
Copy link

recordUpdated="{!c.recordUpdated}" What is the use of this attribute ? When does it fire the controller function?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment