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();

即使计算字段只包含函数定义,也可以正常工作。