Note: This release is in preview. Features described here don’t become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.
Navigate to a Record Create Page with Default Field Values
Launch an Account Record with Default Field Values Using a Standard Action
1<!-- auraNavigator.cmp -->
2<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes">
3 <aura:attribute name="url" type="String"/>
4
5 <!-- Specify the pageReference type. Only object is supported. -->
6 <aura:attribute name="pageReference" type="Object"/>
7 <aura:handler name="init" value="{! this }" action="{! c.init }"/>
8
9 <!-- Implement the navigation service. -->
10 <lightning:navigation aura:id="navService"/>
11
12 <!-- pageReferenceUtil component -->
13 <lightning:pageReferenceUtils aura:id="pageRefUtils"/>
14
15 <!-- Generate a link to launch an account record create page. -->
16 <a href="{!v.url}">New Account (Aura Link)</a> <br/>
17
18 <!-- Launch an account record create page -->
19 <a href="#" onclick="{!c.handleClick}">New Account (Aura PageRef)</a> <br/>
20</aura:component>1// auraNavigatorController.js
2({
3 init : function(cmp, event, helper) {
4 var navService = cmp.find("navService");
5 var pageRef = {
6 type: "standard__objectPage",
7 attributes: {
8 objectApiName: "Account",
9 actionName: "new"
10 },
11 state: {
12 }
13 }
14 // Replace with your own field values
15 var defaultFieldValues = {
16 Name: "Salesforce, #1=CRM",
17 OwnerId: "005XXXXXXXXXXXXXXX",
18 AccountNumber: "ACXXXX",
19 NumberOfEmployees: 35000,
20 CustomCheckbox__c: true
21 };
22 pageRef.state.defaultFieldValues = cmp.find("pageRefUtils").encodeDefaultFieldValues(defaultFieldValues);
23 cmp.set("v.pageReference", pageRef);
24 var defaultUrl = "#";
25
26 // Generate a Link for the Aura Link example
27 navService.generateUrl(pageRef)
28 .then($A.getCallback(function(url) {
29 cmp.set("v.url", url ? url : defaultUrl);
30 }), $A.getCallback(function(error) {
31 cmp.set("v.url", defaultUrl);
32 }));
33 },
34
35 // Navigate to the record create page for the Aura PageRef example
36 handleClick : function(cmp, event, helper) {
37 var navService = cmp.find("navService");
38 var pageRef = cmp.get("v.pageReference");
39 event.preventDefault();
40 navService.navigate(pageRef);
41 }
42})Handle Default Field Values Using an Override Action
This example uses hasPageReference to launch an account create page via an override action.
1<!-- auraNewAccountOverride.cmp -->
2<aura:component implements="lightning:actionOverride,lightning:hasPageReference">
3
4 <lightning:pageReferenceUtils aura:id="pageRefUtils"/>
5 <lightning:recordEditForm
6 objectApiName="Account"
7 onload="{!c.handleCreateLoad}">
8 <lightning:messages />
9 <lightning:inputField aura:id="nameField" fieldName="Name"/>
10 <lightning:inputField aura:id="numOfEmpField" fieldName="NumberOfEmployees"/>
11 <lightning:inputField aura:id="ownerIdField" fieldName="OwnerId"/>
12 <lightning:inputField aura:id="customCheckField" fieldName="CustomCheckbox__c"/>
13 <lightning:button class="slds-m-top_small" type="submit" label="Create new" />
14 </lightning:recordEditForm>
15</aura:component>This example is similar to prepopulating field values using lightning:recordEditForm, except that here the defaultFieldValues are dynamically generated when navigating to the form.
1// auraNewAccountOverrideController.js
2({
3 handleCreateLoad: function (cmp, event, helper) {
4 var pageRef = cmp.get("v.pageReference");
5 var defaultFieldValues =
6 cmp.find("pageRefUtils").decodeDefaultFieldValues(pageRef.state.defaultFieldValues);
7
8 var nameFieldValue = cmp.find("nameField").set("v.value", defaultFieldValues.Name);
9 var numOfEmpFieldValue = cmp.find("numOfEmpField").set("v.value", defaultFieldValues.NumberOfEmployees);
10 var ownerIdFieldValue = cmp.find("ownerIdField").set("v.value", defaultFieldValues.OwnerId);
11 var customCheckFieldValue = cmp.find("customCheckField").set("v.value", defaultFieldValues.CustomCheckbox__c === 'true');
12 }
13})