In below example I’m retrieving “Account” object “Industry” picklist values and populating on lightning component using ui:inputSelect
.
Apex Class:
public class AccountAuraController { @AuraEnabled public static List<String> getIndustry(){ List<String> options = new List<String>(); Schema.DescribeFieldResult fieldResult = Account.Industry.getDescribe(); List<Schema.PicklistEntry> pList = fieldResult.getPicklistValues(); for (Schema.PicklistEntry p: pList) { options.add(p.getLabel()); } return options; } }
Component:
<!--TestComponent--> <aura:component controller="AccountAuraController" access="global" implements="force:appHostable"> <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> <div class="slds-form-element"> <label class="slds-form-element__label" for="select-01">Select Industry</label> <div class="slds-select_container"> <ui:inputSelect label="Industry" class="dynamic" aura:id="InputAccountIndustry" change="{!c.onPicklistChange}"/> </div> </div> </aura:component>
Component Controller:
({ doInit: function(component, event, helper) { var action = component.get("c.getIndustry"); var inputIndustry = component.find("InputAccountIndustry"); var opts=[]; action.setCallback(this, function(a) { opts.push({ class: "optionClass", label: "--- None ---", value: "" }); for(var i=0;i< a.getReturnValue().length;i++){ opts.push({"class": "optionClass", label: a.getReturnValue()[i], value: a.getReturnValue()[i]}); } inputIndustry.set("v.options", opts); }); $A.enqueueAction(action); }, onPicklistChange: function(component, event, helper) { //get the value of select option var selectedIndustry = component.find("InputAccountIndustry"); alert(selectedIndustry.get("v.value")); }, })
Lightning App:
<!--TestApp--> <aura:application extends="ltng:outApp" access="global"> <c:TestComponent /> </aura:application>