Lightning Data Service (LDS) is to serve as the data layer for Lightning. It is similar like Standard Controllers in Visualforce Page.
Advantages of Lightning Data Service:
- Lightning Data Service allows to load, create, edit, or delete a record without requiring Apex code and SOQL query.
- Lightning Data Service handles sharing rules and field-level security.
- Records loaded in Lightning Data Service are cashed and shared across all components.
- When one component updates a record, the other component using it are notified.
- Lightning Data Service supports offline in Salesforce1.
In below example I’m creating Lead object record using Lightning Data Service. By using the new base lightning component lightning:recordEditForm
, we can create and edit records, without custom Javascript and Apex code.
Lightning Component:
<!--Sample.cmp--> <aura:component implements="flexipage:availableForAllPageTypes,force:appHostable"> <!--Component--> <div class="slds-m-around--xx-large"> <lightning:card title="Lead" iconName="standard:lead" class="slds-p-around_medium"> <lightning:recordEditForm aura:id="leadCreateForm" objectApiName="Lead" onsuccess="{!c.handleOnSuccess}"> <lightning:messages /> <div class="slds-grid"> <div class="slds-col slds-size_1-of-2 slds-p-around_medium"> <lightning:inputField fieldName="FirstName"></lightning:inputField> </div> <div class="slds-col slds-size_1-of-2 slds-p-around_medium"> <lightning:inputField fieldName="LastName"></lightning:inputField> </div> </div> <div class="slds-grid"> <div class="slds-col slds-size_1-of-2 slds-p-around_medium"> <lightning:inputField fieldName="Email"></lightning:inputField> </div> <div class="slds-col slds-size_1-of-2 slds-p-around_medium"> <lightning:inputField fieldName="Phone"></lightning:inputField> </div> </div> <div class="slds-grid"> <div class="slds-col slds-size_1-of-2 slds-p-around_medium"> <lightning:inputField fieldName="Company"></lightning:inputField> </div> </div> <lightning:button type="submit" label="Save" variant="brand"/> </lightning:recordEditForm> </lightning:card> </div> </aura:component>
Lightning JS Controller:
({ handleOnSuccess : function(component, event, helper) { var toastEvent = $A.get("e.force:showToast"); toastEvent.setParams({ "title": "Success!", "message": "The record has been created successfully.", "type": "success", "mode": "pester" }); toastEvent.fire(); $A.get("e.force:refreshView").fire(); } })