在 Magnolia 中更改 LinkField 时填充 TextField 的数据

Populate Data for TextField on change of LinkField in Magnolia

我的对话框中有一个由 LinkField 和 TextField 组成的 CompositeField。 在 LinkField 的 select 数据中,我还想用与 LinkField 值相关的值填充 TextField。 知道怎么做吗?

这是针对 Magnolia CMS 的。我正在使用最新的 Magnolia 版本。

谢谢! :)

是否需要根据编辑器更新文本字段?

如果没有,可以通过修改保存动作轻松实现。您的表单应该有一个用 class=info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition

定义的提交按钮

打开 SaveDialogActionDefinition,您会看到它指向 info.magnolia.ui.admincentral.dialog.action.SaveDialogAction,执行时可以在保存会话之前操作节点。

如果您扩展 SaveDialogAction,添加另一个类似于 setNodeName(Node node, JcrNodeAdapter item) 的方法并在 setNodeName(...)node.getSession().save() 之间调用它,您可以设置任何额外的 属性你想要的是根据用户输入的。

您还需要另一个定义 class 来引用您的新操作,以便您的对话定义知道在提交时使用新操作。

不同字段之间没有ootb绑定。

要创建它,您需要编写自己的字段,在内部封装 link 字段和文本字段,并为 link 字段值更改注册侦听器,并在更改后设置值文本字段。
或者您需要重写对话框演示器才能在创建时在 link 字段上注册此类侦听器。

抱歉,目前没有任何代码示例来演示它。希望解释清楚。

HTH,
一月