We are replacing ui names space tags with lightning name space tag in the lightning component since they are going to deprecating soon.
We are displaying multiple languages with checkbox’s . When users selects check box language value should update in backend. While using ui:inputCheckbox tag we are able to update the language but if we use lightning:input type="checkbox" language values updating as Boolean value (True) in the back end instead of check box values. Below is the peace of code.
<aura:attribute name="selectAllLanguages" type="Boolean" default="false" />
<aura:attribute name="languages" type="Object[]" />
<aura:iteration items="{!v.languages}" var="lang">
<lightning:input type="checkbox" value="{!lang.isSelected}" aura:id="boxPackLanguages" />
<!--<ui:inputCheckbox text="{!lang.language}" value="{!lang.isSelected}" aura:id="boxPackLanguages" />-->
</aura:iteration>
JS Code:
var languagesSelected = false;
var getAllLanguages = component.find("boxPackLanguages");
if(getAllLanguages != null){
//if there's only one language
if (getAllLanguages[0] == null) {
languagesSelected = true;
languages.push(getAllLanguages.get("v.value"));
}
for (var i = 0; i < getAllLanguages.length; i++) {
if (getAllLanguages[i].get("v.value") == true) {
languagesSelected = true;
languages.push(getAllLanguages[i].get("v.value"));
}
}
}