2012-02-17 4 views
1

私はOrbeonセクションテンプレートを複数のフォームで使用する共通ライブラリに使用しています。セクションテンプレートと他のセクションの間で値を渡します。

私のフォームの他のセクションの一部のコントロールの可視性を判断するには、特定のセクションテンプレートの値が必要です。だから、私はその内部のコントロールの値にアクセスすることができないようにセクションテンプレートをパラメータ化するソリューションを探しています。

誰かがそれを達成する方法を私に説明することはできますか?

+0

フォームビルダーを使用しています – Jayy

+0

私はセクションテンプレートを作成するためにフォームビルダーを使用しています。セクションテンプレートを含める場所は – trin86

答えて

1

セクションテンプレート内のフィールドの値をそのセクションテンプレート外のフィールド(および別のセクションテンプレート内ではないフィールド)から参照するには、$field-nameシンタックスを使用できません。セクションテンプレートの内側からはできますが、セクションテンプレートの外側からはアクセスできません。これは、セクションテンプレートが実際にコンテンツをカプセル化しているため、たとえば、フォームに同じセクションテンプレートの複数のインスタンスを持つことや、同じフィールド名を使用する複数のセクションテンプレートを持つことができます。

あなたの質問に答えるには、パス式を使用する必要があります。参照したいフィールドの名前がstreetで、テンプレートの特定のインスタンスに名前がshippingと指定されている場合は、式/form/shipping/streetでフィールドの値を参照できます。その同じテンプレートの別のインスタンスを追加し、そのインスタンスの名前をbillingとすると、その別の街頭フィールドを/form/billing/streetと呼ぶことができます。

+0

ですが、セクションテンプレートはブラックボックスで、コードメンテナンス理由は、セクションテンプレートのコントロールに直接アクセスすべきではありません。コントロールの名前を変更しても変更されないような、セクションテンプレート用の一種のインターフェースを持つことは可能ですか? – trin86

+0

@ trin86この場合、インターフェイスはセクション内のコントロールの名前です。セクション内のコントロールを参照する場合は、ある種の名前を付ける必要があります。再利用可能なセクションのコントロールには、外部から使用する名前と要素名に使用する名前の2つの名前があることを示唆していると思います。追加された複雑さが私たちを多く買うだろうとは確信していません。現在、ただ一つの名前しかありません。 – avernet

関連する問題