2

我创建了一个由 Foundry Form 支持的对象,我想为用户提供更改该对象的属性。我将表单链接到对象并创建了一个标题属性,该属性是对象创建表单中的隐藏/派生值。用户可以编辑属性a和属性b,对象的标题将是ab.

当用户更新编辑表单中的对象时,标题不会更新。有我需要更改的配置吗?

4

1 回答 1

1

是的,这是可能的。实际上有两种方法可以实现这一点,我将按照我的喜好列出它们:

使用动作

实现这一点的现代方法是使用动作。操作允许您灵活地“拦截”来自用户的写入等事件,并执行额外的操作(因此得名)或防止事情发生。它们是铸造厂的一个相当新的功能。

基本概念是您编写一小段代码(对象上的函数),在修改对象时执行。然后该函数可以进一步修改对象或阻止修改。

这是非常灵活的,因为它允许您自动更新对象的标题,而不管对象的编辑方式和时间。您还可以应用更复杂的逻辑从例如具有后备功能的多个属性中派生标题,或者在将属性放入标题之前以某种方式修改属性等。

缺点是这需要您编写一些代码。

在您的堆栈上,如果您导航到/workspace/documentation/product/actions/function_backed_actions您将找到有关如何开始操作的介绍。该示例解决了您要求的确切用例。

使用表单模板

另一种更简单且不需要编写任何代码但灵活性较差的方法是在表单中使用模板。您可以创建一个不可见的模板表单小部件,并由其他表单字段中的值自动填充。

设置

在行动

优点是设置起来非常简单快捷,但缺点是它只适用于通过表单编辑对象时,你真的只能做串联,其他的不多。

听起来这就是你试图做的,我相信这应该可行。如果没有,我会检查以下内容:

  • 使模板可见,以查看它是否像您期望的那样被填写
  • 确保模板设置为将其响应存储到对象的正确属性中
  • 确保用户使用表单来编辑对象,而不是其他方式(比如直接在 hubble 中编辑属性)
于 2020-12-04T08:32:24.823 回答