Я работаю над приложением, использующим Xpages и KendoUI. На одной конкретной странице у меня есть панель инструментов с кнопкой «Добавить запись». Кнопка открывает окно, и пользователь выберет один из части данных и создаст новую запись.Xpages: Получение sessionScope Array в CSJS
Список данных - это имена сотрудников, и я должен их вычислить. Я делаю это в sessionScope [может быть viewScope] массив в beforePageLoad, например, так:
<xp:this.beforePageLoad>
<![CDATA[#{javascript:viewScope.myArray = [];
viewScope.myArray.push("1st Val");
viewScope.myArray.push("2nd Val");
viewScope.myArray.push("3rd Val");}]]>
</xp:this.beforePageLoad>
Раскрывающийся необходимы данные в следующем формате:
var data = [
{ text: "Black", value: "1" },
{ text: "Orange", value: "2" },
{ text: "Grey", value: "3" }
];
Для жизни меня я не могу получить данные в этот формат. Это похоже на объект javascript для меня.
Как получить массив в viewScope в формате, в котором я нуждаюсь?
var o = {};
o = "#{javascript:viewScope.get('myArray');";
Линия o = # {javascript: viewScope.get ('myArray')}; бросает исключение. Правильно ли синтаксис? Я пытаюсь сделать эту работу, но я не могу ее получить. –
@BryanSchmiedeler Когда (жизненный цикл) ваш 'myArray' заполняется в' viewScope'? Возможно, он не сформирован при первом доступе. Возможно, попробуйте 'o = # {javascript: viewScope.get ('myArray')} || [];', чтобы обеспечить условный отказ от пустого массива. –
Быстрые тесты с использованием вашего первого примера (viewScope.myArray.push («1-й вал»)), но я не использовал JSON Object в качестве элементов массива, так что, вероятно, поэтому он не подходит для вас. xpages-noob ответ будет работать с объектами JSON. –