1

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

4

1 回答 1

1

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

const data = {{q_myQuery}}

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

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

从文档(Slate > 概念 > 函数):

每个文档级别的函数库

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

可用的默认 JavaScript 库

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

于 2020-09-22T19:17:42.827 回答