2012-06-01 2 views
0

나는 플레이 2를 배우는 데 약간의 시간을 할애했지만 지금은 프로젝트를 일반화하고 싶습니다. 엔티티 목록을 렌더링하기위한 뷰가 있으며 엔티티를이 목록에 렌더링하는 매개 변수로 다른 뷰를 전달하려고합니다.플레이 프레임 워크 2.보기를보기로보기

// showList.scala.html 
@(entityList: List[Entity], /* Template for one Entity render. Named entityRenderer*/) 
@for(entity <- entityList) 
entityRenderer(entity) 

// entityRenderer.scala.html 
@(entity: Entity) 
    @entity.getName() 

유형 entityRenderer이 있어야합니다 예를 들어 ?

각 템플릿은 스칼라 함수라는 것을 알고 있지만 어떻게 처리해야합니까?

답변

0

나는 당신의 나는 다음을 제안 질문을 이해한다면 :

// file main.scala.html 
@(entityList: Page[models.Task]) // here we define a Page of entities 
@for(entity <- entityList.getList) { 
    <ul> 
     @tags.entityRenderer(entity) // here we call another view passing the entity 
    </ul> 
} 

그리고 다른 파일 :

// file entityRenderer.scala.html in package tags 
@(entity: Task) // here we define the incoming arguments 
    <li>entity.property</li> 

Rember 템플릿은 기본적으로 함수로 컴파일되어 있습니다. 따라서 올바른 인수를 정의하고 올바른 인수를 전달해야합니다.

+0

내 뜻이 아닙니다. 이제 나는 네가 쓰는 상황을 정확하게 가지고있다. 그리고 이것은 약간의 코드 반복을 가져옵니다. 귀하의 예제에서는 main.scala.html에 매개 변수로 tags.entityRenderer()을 전달하려고합니다. 이 aproach를 사용하여 smallReaderRenderer()를 전달하면 작은 머리글 목록으로, detailedRenderer()를 전달하면 자세한 목록으로 작업 목록을 렌더링 할 수 있습니다. 그런데 어쩌면 내가 기본 개념을 오해 했을까? –

관련 문제