XPages:是否可以在不将 SSJS 函数放入库的情况下对其进行重用?
XPages: Can an SSJS function be reused without putting it in a library?
我有一个 ssjs 函数,它在独立的 XPages 自定义控件中只被调用了几次。
有没有办法将这个函数保留在 XPage/CustomControl 本身并直接调用它而不将它存储在单独的 javascript 库中?
我认为这是不可能的,因为您没有 "global scope",因此您无法从 xpage/custom 控件中的不同事件引用您的函数。你必须把这个 SSJS 函数放在一个库中!
我支持乔治所说的。将函数放入库中,但仅将其作为资源包含在将进行调用的自定义 control/xpage 中,这样它就不会加载到其他 pages/controls 不需要的地方
这是如何完成的:
添加一个 ComputedField(例如将其命名为“local_ssjs
”)并让它生成所需的共享 js 代码作为字符串值。
例如:"function returnFour(){retrun (4)};"
在您的活动中,获取共享代码并使用 eval()
函数 包含 它。
var sharedCode = getComponent("local_ssjs").getValue();
eval(sharedCode);
var xFour = returnFour();
即使计算字段只包含函数定义,也可以正常工作。
我有一个 ssjs 函数,它在独立的 XPages 自定义控件中只被调用了几次。
有没有办法将这个函数保留在 XPage/CustomControl 本身并直接调用它而不将它存储在单独的 javascript 库中?
我认为这是不可能的,因为您没有 "global scope",因此您无法从 xpage/custom 控件中的不同事件引用您的函数。你必须把这个 SSJS 函数放在一个库中!
我支持乔治所说的。将函数放入库中,但仅将其作为资源包含在将进行调用的自定义 control/xpage 中,这样它就不会加载到其他 pages/controls 不需要的地方
这是如何完成的:
添加一个 ComputedField(例如将其命名为“local_ssjs
”)并让它生成所需的共享 js 代码作为字符串值。
例如:"function returnFour(){retrun (4)};"
在您的活动中,获取共享代码并使用 eval()
函数 包含 它。
var sharedCode = getComponent("local_ssjs").getValue();
eval(sharedCode);
var xFour = returnFour();
即使计算字段只包含函数定义,也可以正常工作。