В мире разработки 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);