Orbeon Forms - 防止表单生成器覆盖表单中的模板
Posted
技术标签:
【中文标题】Orbeon Forms - 防止表单生成器覆盖表单中的模板【英文标题】:Orbeon Forms - prevent Form Builder from override template in form 【发布时间】:2021-05-30 23:42:18 【问题描述】:我使用的是 Oberon 表单版本 2019.2 CE。 假设我有部分:
<s_address>
<s_address-iteration>
<grid-address>
<c_country label=""/>
</grid-address>
</s_address-iteration>
</s_address>
当我运行表单并添加此部分的新重复时,会从此模板创建新的重复:
<xf:instance xxf:readonly="true" xxf:exclude-result-prefixes="#all"
id="s_address-template">
<s_address-iteration>
<grid-address>
<c_country/>
</grid-address>
</s_address-iteration>
</xf:instance>
现在,我还想在模板中的字段 c_country 中添加标签。但是,当我这样做并应用更改时,Form Builder 会从模板中删除此标签。
是否可以阻止 Form Builder 这样做?
我可以为带有标签的 s_address 部分创建自定义模板,但此解决方案将难以维护。
【问题讨论】:
【参考方案1】:模板由 Form Builder 重新创建,这解释了为什么您的更改会消失。如果您需要在 <country>
上添加额外的 label
属性,手动将其添加到模板中是不可行的。
现在,仅根据上面提供的信息,我无法判断“正确的方法”是什么。这将取决于 label
属性的用途,当您需要它时。 (请随时在下面添加评论,并附上您的用例说明,我会尽力跟进。)
【讨论】:
【参考方案2】:这个问题可能与此有关:
Orbeon forms - clear dropdown label https://github.com/orbeon/orbeon-forms/issues/4731我需要在模板中向字段添加空标签,因为我在表单中有功能,当用户按下按钮时,表单从外部服务获取数据并用该数据提供字段(当它是动态下拉列表时,我设置值和标签)。如果我没有在字段中添加空标签,当用户添加新的部分重复时,标签将无法正确显示。
现在,我通过这种方式解决了这个问题:我根据 Form Builder 自动创建的模板创建自定义模板,并使用它而不是默认模板。这个解决方案有效,但正如我之前写的,它很难维护。
【讨论】:
感谢您发布对您有用的内容。现在我了解到您使用服务填充了label
属性。但是谁在使用它的价值呢? (我在问,因为我想知道是否没有更简单的方法来处理这个问题。)-Alex
我不确定你在问什么。我将从我的表单中举一个例子:用户可以自己填写地址部分,也可以单击按钮,用从服务下载的数据填写地址字段。地址部分有很多动态下拉字段(带搜索)。
知道了,<c_country label=""/>
元素绑定到带有搜索的动态下拉列表?然后,当您在表单生成器中添加带有搜索功能的动态下拉列表时,实例中的元素应自动获得 label
属性。我想它是在一个重复的网格中,因为你有一个模板。虽然模板没有获得label
属性,但只要您创建一个新行,至少通过单击“+”图标,就会添加label
。您是否看到不同的东西,或者以不同的方式添加行? -亚历克斯
以上是关于Orbeon Forms - 防止表单生成器覆盖表单中的模板的主要内容,如果未能解决你的问题,请参考以下文章