您可以将参数传递给Slate中的函数吗?

问题描述

在Foundry的Slate应用程序中,有没有一种干净的方法来编写使用车把语法接受参数作为输入的函数

解决方法

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

const data = {{q_myQuery}}

通过这种方式定义依赖项,只要上游依赖项的值发生变化,Slate即可自动重新计算Function输出。这样,您就不会“调用”函数,而Slate中的其他元素会引用函数输出,并且只要输入发生更改,输出就会更新。

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

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

每个文档级别的功能库

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

可用的默认JavaScript库

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