Templates 在节模板和其他节之间传递值

Templates 在节模板和其他节之间传递值,templates,orbeon,Templates,Orbeon,我在一个公共库中使用Orbeon节模板,该库以多种形式使用 我需要给定节模板的一些值来确定表单其他节中某些控件的可见性。因此,我正在寻找一种解决方案,将节模板参数化,以避免访问其内部控件值 有人能给我解释一下如何做到这一点吗?要从节模板之外的字段(而不是另一节模板中的字段)中引用节模板内字段的值,您不能使用$field name语法。可以从剖面模板内部,但不能从剖面模板外部。这是因为节模板确实封装了它们的内容,因此允许您在表单中拥有同一节模板的多个实例,或者使用相同字段名的多个节模板 所以,为了

我在一个公共库中使用Orbeon节模板,该库以多种形式使用

我需要给定节模板的一些值来确定表单其他节中某些控件的可见性。因此,我正在寻找一种解决方案,将节模板参数化,以避免访问其内部控件值


有人能给我解释一下如何做到这一点吗?

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


所以,为了回答您的问题,这里需要使用路径表达式。假设要引用的字段名为
street
,并且您将模板的特定实例命名为
shipping
,那么您可以使用表达式
/form/shipping/street
引用该字段的值。如果您添加同一模板的另一个实例,并将该实例命名为
billing
,则您可以将该其他街道字段引用为
/form/billing/street
,以从该区域模板之外的字段(其本身不在另一个区域模板中)引用该区域模板内的字段值,不能使用
$字段名
语法。可以从剖面模板内部,但不能从剖面模板外部。这是因为节模板确实封装了它们的内容,因此允许您在表单中拥有同一节模板的多个实例,或者使用相同字段名的多个节模板


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

是的,我使用form Builder创建节模板和包含节模板的表单是的,我使用form Builder创建节模板和包含节模板的表单确定,但是考虑到节模板是一个黑盒子的事实,并且出于代码维护的原因,我们不应该直接访问节模板中的控件。那么,是否有可能为节模板提供一种即使我们更改其控件名称也不会更改的接口?@trin86在本例中,接口是节中控件的名称。如果要引用节中的控件,需要为其指定某种名称。我认为您是在建议可重用部分中的控件可以有两个名称:一个从外部使用,另一个用于元素名称。我不确定增加的复杂性会给我们带来多少好处,目前,只有一个名称。好的,但考虑到一个节模板是一个黑盒子,并且出于代码维护的原因,我们不应该直接访问节模板中的控件。那么,是否有可能为节模板提供一种即使我们更改其控件名称也不会更改的接口?@trin86在本例中,接口是节中控件的名称。如果要引用节中的控件,需要为其指定某种名称。我认为您是在建议可重用部分中的控件可以有两个名称:一个从外部使用,另一个用于元素名称。我不确定增加的复杂性会给我们带来多少好处,目前,只有一个名字。