【问题标题】:passing values between a section template and an other section在节模板和其他节之间传递值
【发布时间】:2012-03-08 19:06:47
【问题描述】:

我在一个通用库中使用 Orbeon 部分模板,我以多种形式使用它。

我需要给定部分模板的一些值来确定表单其他部分中某些控件的可见性。所以我正在寻找一种解决方案来参数化部分模板,以便永远不会访问其内部控制值。

有人可以向我解释如何实现吗?

【问题讨论】:

  • 是的,我正在使用表单生成器来创建部分模板和包含部分模板的表单

标签: templates orbeon


【解决方案1】:

要从该部分模板之外的字段(并且本身不在另一个部分模板中)引用该部分模板内的字段的值,您不能使用$field-name 语法。您可以从节模板内部,但不能从节模板外部。这是因为部分模板真正封装了它们的内容,因此允许您在表单中拥有多个相同部分模板的实例,或者使用相同字段名称的多个部分模板。

因此,要回答您的问题,这是您需要使用路径表达式的情况。假设您要引用的字段名为street,并且您将模板的特定实例命名为shipping,那么您可以使用表达式/form/shipping/street 引用该字段的值。如果您添加同一模板的另一个实例,并将该实例命名为billing,那么您可以将另一个街道字段称为/form/billing/street

【讨论】:

  • 好的,但是考虑到节模板是一个黑盒子的事实,并且出于代码维护的原因,我们不应该直接访问节模板中的控件。那么是否有可能为部分模板提供一种即使我们更改其控件名称也永远不会改变的界面?
  • @trin86 在这种情况下,接口是节中控件的名称。如果你想在一个节中引用一个控件,你需要给它起一个名字。我认为您建议可重用部分中的控件可以有两个名称:一个用于从外部使用,另一个用于元素名称。我不确定增加的复杂性会给我们带来多少好处,目前只有一个名字。
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 2015-10-25
  • 2014-12-17
  • 1970-01-01
  • 2017-03-10
  • 2011-04-19
  • 1970-01-01
相关资源
最近更新 更多