你能在 Slate 中将参数传递给函数吗?

Can you pass arguments to functions in Slate?

在 Foundry 的 Slate 应用程序中,是否有一种简洁的方法来编写使用 handlebar 语法接受参数作为输入的函数?

Slate 函数的输入由函数本身内部的 Handlebar 引用定义,而不是函数参数;例如,要从函数内部的查询中访问数据,您可以这样写:

const data = {{q_myQuery}}

以这种方式定义依赖项允许 Slate 在上游依赖项的值发生变化时自动重新计算函数输出。通过这种方式,您永远不会“调用”一个函数,而是 Slate 中的一些其他元素引用函数输出,并且只要输入发生变化,该输出就会更新。

如果您想进行某种代码重用,可以使用 functionLibraries 编写可以在函数之间 re-use 的通用代码。这些是包含在全局 javascript 范围内的标准 javascript 函数,可以通过任何 Function 中的函数名称简单地引用,并使用正常的 javascript 语法获取函数参数。由于这些是香草 javascript 你不能在 functionLibrary 中使用 Handlebars - 这里任何输入都必须作为父函数的参数传入。

来自文档(Slate > 概念 > 函数):

Per-Document级函数库

用户可以编写带参数的可重用 javascript 函数。这将有助于重构代码并减少函数中代码的复制和粘贴。您还可以 re-run 并使用 Re-run 所有函数按钮更新依赖于函数库的所有函数。

默认 JavaScript 库可用

为了增强函数的使用,Slate 默认(自 Slate 2.15 起)附带以下外部 JavaScript 库:Lodash、Math.js、Moment、Numeral 和 es6-shim。在编写您的 functions.Do 时请随意使用这些库,不要使用 ES6 语法功能,除非所有用户都必须使用支持这些功能的浏览器。