2012-02-17 36 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