• Luis E Macea Zabaleta
  • NEWBIE
  • 10 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies
Hi, Everyone 

Im working on this badge Lightning Data Service Basics, In the last unit i am getting an error when a check the challenge ("Challenge Not yet complete... here's what's wrong: The 'accEdit' Lightning Component does not appear to be checking if 'v.recordSaveError' is true."), i have done the code according to the trailhead, and it is working.
Any idea, what am i doing wrong?

Component 
<aura:component implements="flexipage:availableForRecordHome,force:hasRecordId"> <!--inherit recordId attribute-->

<aura:attribute name="record" type="Object" />
<aura:attribute name="accountRecord" type="Object" />
<aura:attribute name="recordSaveError" type="String" default="" />

<force:recordData aura:id="recordEditor"
    layoutType="FULL"
    recordId="{!v.recordId}"
    fields="Name"
    targetError="{!v.recordSaveError}"
    targetRecord="{!v.record}"
    targetFields="{!v.accountRecord}"
    mode="EDIT" />

    <!-- Display an editing form -->
    <div class="Record Details">
        <lightning:card iconName="action:edit" title="Edit Account">
            <div class="slds-p-horizontal--small">
                <lightning:input label="Account Name" value="{!v.accountRecord.Name}"/>
                <br/>
                <lightning:button label="Save Account" variant="brand" onclick="{!c.handleSaveRecord}" />
            </div>
        </lightning:card>
    </div>
  
 <!-- Display error message -->
    <aura:if isTrue="{!not(empty(v.recordSaveError))}">
        <div class="recordSaveError">
           {!v.recordSaveError}
        </div>
    </aura:if>
</aura:component>

---------------------------
controller.js

({
    handleSaveRecord: function(component, event, helper) {
        component.find("recordEditor").saveRecord($A.getCallback(function(saveResult) {
            if (saveResult.state === "SUCCESS" || saveResult.state === "DRAFT") {
                console.log("Save completed successfully.");
            } else if (saveResult.state === "INCOMPLETE") {
                console.log("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";
                }
                console.log('ERROR---'+errMsg)
                component.set("v.recordSaveError", errMsg);

            } else {
                component.set("v.recordSaveError", "");
            }
        }));}
})




 
Hi, Everyone 

Im working on this badge Lightning Data Service Basics, In the last unit i am getting an error when a check the challenge ("Challenge Not yet complete... here's what's wrong: The 'accEdit' Lightning Component does not appear to be checking if 'v.recordSaveError' is true."), i have done the code according to the trailhead, and it is working.
Any idea, what am i doing wrong?

Component 
<aura:component implements="flexipage:availableForRecordHome,force:hasRecordId"> <!--inherit recordId attribute-->

<aura:attribute name="record" type="Object" />
<aura:attribute name="accountRecord" type="Object" />
<aura:attribute name="recordSaveError" type="String" default="" />

<force:recordData aura:id="recordEditor"
    layoutType="FULL"
    recordId="{!v.recordId}"
    fields="Name"
    targetError="{!v.recordSaveError}"
    targetRecord="{!v.record}"
    targetFields="{!v.accountRecord}"
    mode="EDIT" />

    <!-- Display an editing form -->
    <div class="Record Details">
        <lightning:card iconName="action:edit" title="Edit Account">
            <div class="slds-p-horizontal--small">
                <lightning:input label="Account Name" value="{!v.accountRecord.Name}"/>
                <br/>
                <lightning:button label="Save Account" variant="brand" onclick="{!c.handleSaveRecord}" />
            </div>
        </lightning:card>
    </div>
  
 <!-- Display error message -->
    <aura:if isTrue="{!not(empty(v.recordSaveError))}">
        <div class="recordSaveError">
           {!v.recordSaveError}
        </div>
    </aura:if>
</aura:component>

---------------------------
controller.js

({
    handleSaveRecord: function(component, event, helper) {
        component.find("recordEditor").saveRecord($A.getCallback(function(saveResult) {
            if (saveResult.state === "SUCCESS" || saveResult.state === "DRAFT") {
                console.log("Save completed successfully.");
            } else if (saveResult.state === "INCOMPLETE") {
                console.log("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";
                }
                console.log('ERROR---'+errMsg)
                component.set("v.recordSaveError", errMsg);

            } else {
                component.set("v.recordSaveError", "");
            }
        }));}
})