Play Framework 2.将视图传递到视图中

时间:2012-06-01 19:12:10

标签: scala playframework-2.0

我花了一些时间学习Play 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应该具有哪种类型?

我知道每个模板只是一个scala函数但是如何处理它们?

1 个答案:

答案 0 :(得分: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>

表示模板基本上已编译成函数。因此,您需要定义正确的参数,并明显传递正确的参数。