Reputation: 33
I'm trying to create a view that only houses reusable HTML blocks that can be used by other views. Wanted to know if something like this is possible:
In views.home.common.scala.html:
@component1 = {
some common html
}
@component2 = {
some other stuff
}
In views.home.sample.scala.html:
@(user:User)
import home._
@component1
@common.component2
Haven't had any luck thus far and I don't see anything similar in the samples but the idea is covered in the Template common use cases.
Upvotes: 3
Views: 235
Reputation: 2211
I was having this same issue. What I did was defining for each common block a file and then import the package that contains all those files.
For example:
In views.common.component1.scala.html:
<div>
Common component 1
</div>
In views.common.component2.scala.html:
<div>
Common component 2
</div>
In views.main.scala.html:
@(content: Html)
@import common._
<!DOCTYPE html>
<html>
<head></head>
<body>
@component1()
@component2()
</body>
</html>
Upvotes: 1