You need to sign in to do that
Don't have an account?

The campingListItem JavaScript controller isn't setting 'Packed' value correctly....
Hi All,
I am not able to complete the challenge "Mark Item as Packed" getting error message The campingListItem JavaScript controller isn't setting the 'Packed' value correctly.
Below is the code, please help
<aura:component >
<aura:attribute name="item" type="Camping_Item__c" required="true"/>
<aura:attribute name="buttonDisabled" type="String" default="false"/>
<p>Price:
<ui:outputCurrency value="{!v.item.Price__c}"/>
</p>
<p>Name:
<ui:outputText value="{!v.item.Name}"/>
</p>
<p>Quantity:
<ui:outputNumber value="{!v.item.Quantity__c}"/>
</p>
<p>Packed?:
<ui:outputCheckbox value="{!v.item.Packed__c}"/>
</p>
<ui:button label="Packed!" press="{!c.packItem}" disabled="{! v.buttonDisabled}" />
</aura:component>
({
packItem : function(component, event, helper) {
component.set("v.item", { 'sobjectType': 'Camping_Item__c','Packed__c': true });
component.set("v.buttonDisabled", "true");
}
})
I am not able to complete the challenge "Mark Item as Packed" getting error message The campingListItem JavaScript controller isn't setting the 'Packed' value correctly.
Below is the code, please help
<aura:component >
<aura:attribute name="item" type="Camping_Item__c" required="true"/>
<aura:attribute name="buttonDisabled" type="String" default="false"/>
<p>Price:
<ui:outputCurrency value="{!v.item.Price__c}"/>
</p>
<p>Name:
<ui:outputText value="{!v.item.Name}"/>
</p>
<p>Quantity:
<ui:outputNumber value="{!v.item.Quantity__c}"/>
</p>
<p>Packed?:
<ui:outputCheckbox value="{!v.item.Packed__c}"/>
</p>
<ui:button label="Packed!" press="{!c.packItem}" disabled="{! v.buttonDisabled}" />
</aura:component>
({
packItem : function(component, event, helper) {
component.set("v.item", { 'sobjectType': 'Camping_Item__c','Packed__c': true });
component.set("v.buttonDisabled", "true");
}
})
In controller.js :
({
packItem : function(component, event, helper) {
var checkbox = component.get("v.item",true);
checkbox.Packed__c = true;
component.set("v.item",checkbox);
event.getSource().set('v.disabled', true);
}
})
This is what worked for me
Regards!
Instead of the 3 lines below :
3 var checkbox = component.get("v.item");
4 checkbox.Packed__c = true;
5 component.set("v.item",checkbox );
why can't we use the following?
component.set("v.item.Packed__c", true);
Thanks.
({
packItem : function(component, event, helper) {
var checkbox = component.get("v.item");
checkbox.Packed__c = true;
component.set("v.item",checkbox );
var buttonclicked=event.getSource();
buttonclicked.set("v.disabled","true");
}
})
<aura:component >
<aura:attribute name="item" type="Camping_Item__c" required="true"/>
<p>Name:
<ui:outputText value="{!v.item.Name}"/>
</p>
<p>Price:
<ui:outputCurrency value="{!v.item.Price__c}"/>
</p>
<p>Quantity:
<ui:outputNumber value="{!v.item.Quantity__c}"/>
</p>
<p>Packed:
<ui:outputCheckbox value="{!v.item.Packed__c}"/>
</p>
<div>
<ui:button label="Packed!" disabled="false" press="{!c.packItem}"/>
</div>
</aura:component>
Controller
({
packItem : function(component, event, helper) {
//var checkbox = component.get("v.item.Packed__c");
// checkbox.Packed__c = true;
component.set("v.item.Packed__c",true );
var buttonclicked=event.getSource();
buttonclicked.set("v.disabled","true");
}
})
1. Get the campingListItem
2. Modify the attribute on it to set the value to true
3. Set the campingListItem back
<aura:component >
<aura:attribute name="item" type="Camping_Item__c" required="true" />
<p>Name:<ui:outputText value="{!v.item.Name}"/></p>
<p>Price:<lightning:formattedNumber value="{!v.item.Price__c}" style="currency"/></p>
<p>Quantity<lightning:formattedNumber value="{!v.item.Quantity__c}" style="integer"/></p>
<p>Packed:<lightning:input type="toggle" checked="{!v.item.Packed__c}"/></p>
<div>
<lightning:button label="Packed!" disabled="false" onclick="{!c.packItem}"/>
</div>
</aura:component>
packItem: function(component, event, helper) {
var a = component.get("v.item",true);
a.Packed__c = true;
component.set("v.item",a);
var btnClicked = event.getSource();
var btnMessage =btnClicked.get("v.Packed!");
btnClicked.set("v.disabled",true);
Component:
<aura:component >
<aura:attribute name="item" type="Camping_Item__c" required="true" />
<p>Name:<ui:outputText value="{!v.item.Name}"/></p>
<p>Price:<lightning:formattedNumber value="{!v.item.Price__c}" style="currency"/></p>
<p>Quantity<lightning:formattedNumber value="{!v.item.Quantity__c}" style="integer"/></p>
<p>Packed:<lightning:input type="toggle" checked="{!v.item.Packed__c}"/></p>
<div>
<lightning:button label="Packed!" disabled="false" onclick="{!c.packItem}"/>
</div>
</aura:component>
Controller:
({
packItem : function(component, event, helper) {
component.set("v.item.Packed__c",true );
var buttonclicked=event.getSource();
buttonclicked.set("v.disabled","true");
}
})
component.set("v.item.Packed__c", true);