2012-02-17 6 views
1

여러 폼에서 사용하는 공용 라이브러리에서 Orbeon 섹션 템플릿을 사용하고 있습니다.섹션 템플릿과 다른 섹션 간의 값 전달

내 양식의 다른 섹션에서 일부 컨트롤의 표시 여부를 결정하려면 특정 섹션 템플릿의 일부 값이 필요합니다. 그래서 내부 컨트롤 값에 액세스하지 않기 위해 섹션 템플릿을 매개 변수화하는 솔루션을 찾고 있습니다.

누군가가 그 방법을 설명 할 수 있습니까?

+0

양식 빌더를 사용하고 있습니까 – Jayy

+0

예 섹션 템플릿을 만들기 위해 양식 빌더를 사용하고 양식 템플릿 템플릿을 포함 할 곳이 – trin86

답변

1

섹션 템플릿 내부의 필드 값을 해당 섹션 템플릿 외부의 필드 (및 다른 섹션 템플릿에없는 필드)에서 참조하려면 $field-name 구문을 사용할 수 없습니다. 섹션 템플리트 내부에서는 시작할 수 있지만 섹션 템플리트 외부에서는 시작할 수 없습니다. 이는 섹션 템플릿이 실제로 내용을 캡슐화하므로 양식에 동일한 섹션 템플릿의 인스턴스가 여러 개 있거나 동일한 필드 이름을 사용하는 여러 섹션 템플릿을 가질 수 있기 때문입니다.

질문에 대답하기 위해 경로 표현식을 사용해야하는 경우입니다. 참조하려는 필드의 이름이 street이고 템플릿의 특정 인스턴스 이름을 shipping으로 지정한 경우 /form/shipping/street이라는 표현식을 사용하여 필드의 값을 참조 할 수 있습니다. 같은 템플릿의 다른 인스턴스를 추가하고 해당 인스턴스의 이름을 billing으로 지정하면 다른 거리 필드를 /form/billing/street으로 지정할 수 있습니다.

+0

입니다. 단, 섹션 템플릿이 블랙 박스이고 코드 유지 관리가 필요합니다. 이유는 섹션 템플릿의 컨트롤에 직접 액세스하면 안됩니다. 그렇다면 컨트롤의 이름을 변경하더라도 변경되지 않는 섹션 템플릿에 대한 일종의 인터페이스가 가능합니까? – trin86

+0

@ trin86이 경우 인터페이스는 섹션의 컨트롤 이름입니다. 섹션의 컨트롤을 참조하려면 해당 섹션의 이름을 지정해야합니다. 재사용 가능한 섹션의 컨트롤에는 두 가지 이름이있을 수 있다고 제안하는 것 같습니다. 하나는 외부에서 사용하고 다른 하나는 요소 이름으로 사용합니다. 추가 된 복잡성으로 인해 우리를 많이 살 것이라고 확신하지 못하고 있으며, 현재에는 이름이 하나뿐입니다. – avernet