Newer Version Available

This content describes an older version of this product. View Latest

Getting Labels in Apex

You can retrieve label values in Apex code and set them on your component using JavaScript.

Custom Labels

Custom labels have a limit of 1,000 characters and can be accessed from an Apex class. To define custom labels, from Setup, in the Quick Find box, enter Custom Labels, and then select Custom Labels.

In your Apex class, reference the label with the syntax System.Label.MyLabelName.
1public with sharing class LabelController {
2    @AuraEnabled
3    public static String getLabel() {
4        String s1 = 'Hello from Apex Controller, ' ;
5        String s2 = System.Label.MyLabelName;
6        return s1 + s2;
7    }
8}

Return label values as plain text strings. You can’t return a label expression using the $Label global value provider.

Note

The component loads the labels by requesting it from the server, such as during initialization. For example, the label is retrieved in JavaScript code.
1({
2    doInit : function(component, event, helper) {
3        var action = component.get("c.getLabel");
4        action.setCallback(this, function(response) {
5            var state = response.getState();
6            if (state === "SUCCESS") {
7                component.set("v.mylabel", response.getReturnValue());
8            }
9            // error handling when state is "INCOMPLETE" or "ERROR"
10         });
11         $A.enqueueAction(action);
12    }
13})

Finally, make sure you wire up the Apex class to your component. The label is set on the component during initialization.

1<aura:component controller="LabelController">
2    <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
3    <aura:attribute name="mylabel" type="String"/>
4    {!v.mylabel}
5</aura:component>

Passing in Label Values

Pass label values into components using the expression syntax {!v.mylabel}. You must provide a default value to the String attribute. Depending on your use case, the default value might be the label in the default language or, if the specific label can’t be known until runtime, perhaps just a single space.
1<aura:component controller="LabelController">
2    <aura:attribute name="mylabel" type="String" default=" "/>
3    <lightning:input name="mytext" label="{!v.mylabel}"/>
4</aura:component>

You can also retrieve labels in JavaScript code, including dynamically creating labels that are generated during runtime. For more information, see Getting Labels in JavaScript.