2016-09-22 1 views
0

У меня есть функция ssjs, которая вызывается только пару раз в автономном пользовательском элементе XPages.XPages: Можно ли повторно использовать функцию SSJS, не помещая ее в библиотеку?

Есть ли способ сохранить эту функцию в самом XPage/CustomControl и вызвать ее напрямую, не сохраняя ее в отдельной библиотеке javascript?

ответ

0

Вот как это можно сделать :

Добавьте ComputedField (например, его имя «local_ssjs») и позвольте ему сгенерировать желаемый общий код js в виде строкового значения.

т.д .: "function returnFour(){retrun (4)};"

В вашем случае, получить общий код и использовать функцию eval() для включают его.

var sharedCode = getComponent("local_ssjs").getValue(); eval(sharedCode); var xFour = returnFour();

Даже если вычисленное поле содержит только определения функций, это работает нормально.

1

По-моему, это невозможно, потому что у вас нет «глобального масштаба», и поэтому вы не можете ссылаться на свою функцию из разных событий в вашем xpage/custom control. Вы должны поместить эту функцию SSJS в библиотеку!

2

Я второй, что говорит Георг. Поместите эту функцию в библиотеку, но включите ее только в качестве ресурса на пользовательский элемент управления/xpage, который будет выполнять вызовы, чтобы он не был загружен на другие страницы/элементы управления, если не требуется.

Смежные вопросы