Освоение операций с надписями в контроллере Lightning: подробное руководство

В мире разработки Salesforce контроллеры Lightning играют решающую роль в управлении взаимодействием с пользователем и бизнес-логике. Одна из распространенных задач, с которой часто сталкиваются разработчики, — это получение метки в контроллере Lightning. В этой статье блога мы рассмотрим различные методы достижения этой цели, используя разговорный язык, и предоставим примеры фрагментов кода, которые помогут вам лучше понять концепции.

Метод 1: использование $A.get(“$Label.namespace.labelName”)
Самый простой способ получить метку в контроллере Lightning — использовать синтаксис $A.get("$Label.namespace.labelName"). Замените «namespace» на свое собственное пространство имен (если применимо), а «labelName» — на фактическое имя метки, которую вы хотите получить. Вот пример:

var myLabel = $A.get("$Label.namespace.labelName");

Метод 2: использование Component.getReference(“v.labelName”)
Другой подход — использовать метод Component.getReferenceдля получения значения метки. Этот метод полезен, когда вам нужно динамически привязать метку к атрибуту компонента. Вот пример:

var labelRef = component.getReference("v.labelName");
$A.createComponent(
    "lightning:formattedText",
    {
        "value": labelRef
    },
    function(newCmp){
        // Add logic to handle the new component
    }
);

Метод 3: использование $A.getReference(“$Label.namespace.labelName”)
Если вы предпочитаете более краткий синтаксис, вы можете использовать $A.getReference("$Label.namespace.labelName")для получения значения метки. Этот метод аналогичен методу 2, но позволяет напрямую получить метку без необходимости вызова Component.getReference. Вот пример:

var labelRef = $A.getReference("$Label.namespace.labelName");
$A.createComponent(
    "lightning:formattedText",
    {
        "value": labelRef
    },
    function(newCmp){
        // Add logic to handle the new component
    }
);

Метод 4. Использование пользовательского контроллера Apex
Если у вас есть сложные требования к меткам или вам необходимо выполнить дополнительную логику на стороне сервера, вы можете использовать собственный контроллер Apex для получения значения метки. Сначала создайте в контроллере Apex метод, который возвращает значение метки. Затем вызовите этот метод из контроллера Lightning. Вот пример:

Контроллер Apex:

public class MyController {
    @AuraEnabled
    public static String getLabelValue() {
        return Label.namespace.labelName;
    }
}

Контроллер Lightning:

var action = component.get("c.getLabelValue");
action.setCallback(this, function(response) {
    var labelValue = response.getReturnValue();
    // Handle the label value
});
$A.enqueueAction(action);