2012-02-17 59 views
1

我在使用多种形式的公用库中使用Orbeon部分模板。在部分模板和其他部分之间传递值

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

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

+0

你使用表单生成器 – Jayy 2012-02-17 12:19:12

+0

是的我正在使用表单生成器来创建节模板和表单模板,其中包括节模板 – trin86 2012-02-20 09:04:21

回答

1

要引用该节模板之外的某个节模板内的字段的值(而且该节段本身不在其他节模板中),则不能使用$field-name语法。您可以从部分模板内部,但不能从部分模板外部。这是因为部分模板确实封装了其内容,因此您可以在表单中包含多个相同部分模板的实例,或者使用相同字段名称的多个部分模板。

所以,要回答你的问题,这是一个你需要使用路径表达式的情况。假设您要提及的字段名称为street,并且您命名了模板shipping的特定实例,则可以使用表达式/form/shipping/street来引用该字段的值。如果添加同一模板的另一个实例,并将该实例命名为billing,则可以参考其他街道字段/form/billing/street

+0

好吧,但考虑到事实,节模板是一个黑匣子,并为代码维护原因,我们不应该直接访问部分模板中的控件。那么,即使我们改变了它的控件的名称,它也可能有一个不会改变的节模板的接口? – trin86 2012-03-01 07:53:11

+0

@ trin86在这种情况下,接口是该节中控件的名称。如果你想在一节中引用一个控件,你需要给它一个名称。我认为你建议可重复使用的部分中的控件可以有两个名称:从外部使用的名称和用于元素名称的名称。我不确定增加的复杂性会给我们带来多大的收益,目前只有一个名字。 – avernet 2012-03-02 01:57:34