У меня есть модель сотрудников со строковыми полями first_name
и last_name
(я буду использовать для примера Джона Доу). Я хотел бы, чтобы каждая строка раскрывающегося виджета читалась как «Доу, Джон» с использованием источника данных «Сотрудники». Я могу довольно легко привязать массив имен выпадающего виджета к одному или другому полю, отредактировав поле «names» виджета:
[email protected]_name
дает Doe, а [email protected]_name
дает John в первом элементе раскрывающегося списка, соответственно.
Также работает объединение статической строки с полем:
[email protected]_name + "-test"
дает Doe-test в раскрывающемся списке
Однако когда я пытаюсь изменить эту привязку, чтобы объединить два поля, это не сработает:
[email protected]_name + ", " + @datasource.item.Employees.first_name
дает только Доу
Даже выгружаем оба поля в массив и объединяем их:
=[@datasources.Employees.item.last_name, @datasources.Employees.item.first_name].join(", ")
дает только Доу
Единственный способ получить значения двух разных полей из записи вместе в одной строке в раскрывающемся виджете - это использовать клиентский скрипт для заполнения массива имен виджета во время события onDataLoad:
app.datasources.Employees.load(function() {
app.datasources.Employees.items.forEach(
item => widget.names.push([item.last_name, item.first_name].join(", "))
);
});
Это лучший / единственный способ сделать это, или мне просто что-то не хватает в диалоговом окне привязки имен? Спасибо!